Używam MySQL i MySQL Workbench 5.2 CE. Kiedy próbuję połączyć 2 kolumny last_name
i first_name
to nie działa:
select first_name + last_name as "Name" from test.student
Używam MySQL i MySQL Workbench 5.2 CE. Kiedy próbuję połączyć 2 kolumny last_name
i first_name
to nie działa:
select first_name + last_name as "Name" from test.student
Odpowiedzi:
MySQL różni się od większości DBMS używających +
lub ||
do konkatenacji. Wykorzystuje CONCAT
funkcję:
SELECT CONCAT(first_name, " ", last_name) AS Name FROM test.student
Jak @eggyal wskazał w komentarzach, można włączyć konkatenację ciągów z ||
operatorem w MySQL, ustawiając PIPES_AS_CONCAT
tryb SQL.
||
dla łańcuchów znaków, gdy PIPES_AS_CONCAT
włączony jest tryb SQL.
Doctrine
musiałem użyć pojedynczych cudzysłowów dla spacji CONCAT
i podwójnych cudzysłowów wokół całego zapytania.
PIPES_AS_CONCAT
: SET @@SQL_MODE = CONCAT(@@SQL_MODE, ',PIPES_AS_CONCAT');
. Aby rozbroić: SET @@SQL_MODE = REPLACE(@@SQL_MODE, 'PIPES_AS_CONCAT', '');
. Więcej przykładów na mariadb.com/kb/en/library/sql-mode/#examples
To nie jest sposób na konkatowanie w MYSQL. Użyj funkcji CONCAT. Zajrzyj tutaj: http://dev.mysql.com/doc/refman/4.1/en/string-functions.html#function_concat