String-Verkettung in MySQL


148

Ich verwende MySQL und MySQL Workbench 5.2 CE. Wenn ich versuche , 2 Spalten zu verketten, last_nameund first_namees funktioniert nicht:

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

21
Diese Frage zeigt absolut keinen Forschungsaufwand. Google das nächste Mal Ihre Fragen, bevor Sie sie hier stellen.
Mathias Lykkegaard Lorenzen

4
Ich kümmere mich nicht um keine Forschungsanstrengungen, lol. Stackoverflow wird mein Top-Hit in Google für diese Art von Frage, und dies ist der Ort für Crowdsourcing-Antworten :)
Hamish

Antworten:


270

MySQL unterscheidet sich von den meisten DBMS, die +oder ||für die Verkettung verwenden. Es verwendet die CONCATFunktion:

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

Wie @eggyal in den Kommentaren hervorhob, können Sie die Verkettung von Zeichenfolgen mit dem ||Operator in MySQL aktivieren, indem Sie den PIPES_AS_CONCATSQL-Modus festlegen .


7
Bessere Antwort, erklärt, dass MySQL keine Verkettungsoperatoren verwendet.
DonBecker

28
Passen Sie dies nicht ist völlig wahr: MySQL hat Unterstützung ||für String - Verkettung, wenn der PIPES_AS_CONCATSQL - Modus aktiviert ist.
Eggyal

1
Für diejenigen Doctrine, die verwenden , musste ich einfache Anführungszeichen für den Platz in CONCATund doppelte Anführungszeichen für die gesamte Abfrage verwenden.
Craned

3
Einstellen PIPES_AS_CONCAT: SET @@SQL_MODE = CONCAT(@@SQL_MODE, ',PIPES_AS_CONCAT');. Zum Deaktivieren : SET @@SQL_MODE = REPLACE(@@SQL_MODE, 'PIPES_AS_CONCAT', '');. Weitere Beispiele unter mariadb.com/kb/en/library/sql-mode/#examples
mivk

27

Versuchen:

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

oder besser:

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


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.