Database JUNKY

MySQL,MariaDBを中心としたブログです

mysqlのconcatを||(パイプ)で対応できるようにしよう

文字列結合にいちいちconcatなんていう関数を使うのはめんどくさい、且つわけがわからなくなるので、パイプ(||)でconcatと同様の操作がおこなえるように変更するtipsです

f:id:hit10231023:20160510153145p:plain

Jimu Robot 入門レベル

Jimu Robot 入門レベル

concat を利用した場合

select
  concat('現在の時刻は',current_timestamp,'です','明日は晴れかな?','雨かな?','晴れたらいいな') ;
  • 結果
mysql> select                                                                                                                                     
    ->   concat('現在の時刻は',current_timestamp,'です','明日は晴れかな?','雨かな?','晴れたらいいな') ;
+---------------------------------------------------------------------------------------------------------------------------+
| concat('現在の時刻は',current_timestamp,'です','明日は晴れかな?','雨かな?','晴れたらいいな')                            |
+---------------------------------------------------------------------------------------------------------------------------+
| 現在の時刻は2014-03-03 20:36:16です明日は晴れかな?雨かな?晴れたらいいな                                                 |
+---------------------------------------------------------------------------------------------------------------------------+

パイプを利用した場合

mysql> SET sql_mode='PIPES_AS_CONCAT' ;
Query OK, 0 rows affected (0.00 sec)

mysql> 
mysql> select
    ->   '現在の時刻は' || current_timestamp || 'です' || '明日は晴れかな?' || '雨かな?' || '晴れたらいいな';
+----------------------------------------------------------------------------------------------------------------------------------+
| '現在の時刻は' || current_timestamp || 'です' || '明日は晴れかな?' || '雨かな?' || '晴れたらいいな'                            |
+----------------------------------------------------------------------------------------------------------------------------------+
| 現在の時刻は2014-03-03 20:38:31です明日は晴れかな?雨かな?晴れたらいいな                                                        |
+----------------------------------------------------------------------------------------------------------------------------------+

このように、sql_modeにpipes_as_concatを設定すれば、パイプで文字列結合をすることができます。よぷ文書中のカンマとかがconcatですとわからなくなるので、||を利用したほうが間違いが若干ですがなくなります。もちろんconcatとの併用もできます。