MySQLでCONCATを使わずに||で文字列結合できるか

結論から言うと、できる。
ただしデフォルトではできない。はず。

|| で文字列結合するにはSQLモードの設定を行う必要がある。

手っ取り早く試したいなら以下のSQLコマンドを叩く。

SET @@session.sql_mode='PIPES_AS_CONCAT';

これでセッション内でのみ || での文字列結合が有効になる。

こんな感じ。

SELECT * FROM user WHERE last_name || first_name like "山田花子";

前回のブログに書いたSQLと、意味的には同じものになる。

tomcky.hatenadiary.jp

当然ながら、このSQLモードを設定してしまうと、 || 本来の意味である OR ではなくなってしまうため注意。


|| の文字列結合については、はてブでコメントをいただいたので、記事にしてみました。
コメントありがとうございました :bow:

はてなブックマーク - MySQLでカラムを結合して検索する。あとDoctrineのQueryBuilderでの書き方。 - Tomcky's blog