MySQLの文字列連結


148

MySQLとMySQL Workbench 5.2 CEを使用しています。2つの列を連結しようとするlast_namefirst_name、機能しません。

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

21
この質問は、全く研究努力を示していません。次回は、ここで質問する前に質問してください。
Mathias Lykkegaard Lorenzen 2013

4
私は研究の努力を気にしません、笑。このタイプの質問では、stackoverflowがGoogleでのトップヒットになり、クラウドソーシングされた回答が
ここに掲載され

回答:


270

MySQLは、ほとんどのDBMSでの、+または||連結のための使用とは異なります。それはCONCAT関数を使用します:

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

@eggyalがコメントで指摘したように||PIPES_AS_CONCATSQLモードを設定することで、MySQLで演算子を使用した文字列連結を有効にできます。


7
より良い答えは、MySQLが連結演算子を使用しないことです。
DonBecker 2013年

28
これは完全に真実ではないこと注意してください。SQLモードが有効な場合、MySQL ||文字列連結をサポートしますPIPES_AS_CONCAT
eggyal 2014年

1
使用する人のためにDoctrine、私はスペースのために単一引用符を使用していたCONCAT、とクエリ全体を二重引用符。
craned

3
設定するにはPIPES_AS_CONCATSET @@SQL_MODE = CONCAT(@@SQL_MODE, ',PIPES_AS_CONCAT');。設定を解除するには:SET @@SQL_MODE = REPLACE(@@SQL_MODE, 'PIPES_AS_CONCAT', '');mariadb.com/kb/en/library/sql-mode/#examplesの
mivk

27

試してください:

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

または、より良い:

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.