2011-05-12 14 views
58

Używam MySQL i MySQL Workbench 5.2 CE. Kiedy próbuję łączyć 2 kolumny, last_name i first_name, to nie działa:Łączenie ciągów w MySQL

select first_name + last_name as "Name" from test.student 
+1

:) Zobacz, jak szybko uzyskałeś odpowiedzi! – Nishant

+0

cant + symbol być użyte, yeah mam d tho, dzięki wszystkim :) – Roshan

+1

@Nishant: w zaledwie 3 min. –

Odpowiedz

129

MySQL różni się od większości stosowania DBMS z + lub || dla konkatenacji. Wykorzystuje funkcję CONCAT:

SELECT CONCAT(first_name, " ", last_name) AS Name FROM test.student 

Jak @eggyal zauważył w komentarzach, można włączyć konkatenacji ciągów z operatorem w MySQL || poprzez ustawienie trybu PIPES_AS_CONCAT SQL.

+6

Lepsza odpowiedź, wyjaśnia, że ​​MySQL nie używa operatorów konkatenacji. – DonBecker

+16

Pamiętaj, że to nie jest * całkowicie * prawda: MySQL * obsługuje * || do konkatenacji ciągów, gdy ['PIPES_AS_CONCAT'] (http://dev.mysql.com/doc/en/server-sql-mode .html # sqlmode_pipes_as_concat) Tryb SQL jest włączony. – eggyal

+1

Dla osób używających 'Doctrine', musiałem użyć pojedynczych cudzysłowów dla przestrzeni w' CONCAT' i podwójnych cudzysłowów wokół całego zapytania. – craned

21

Spróbuj:

select concat(first_name,last_name) as "Name" from test.student 

albo lepiej:

select concat(first_name," ",last_name) as "Name" from test.student 
5

Zastosowanie concat() funkcja zamiast + tak:

select concat(firstname, lastname) as "Name" from test.student 
Powiązane problemy