Database JUNKY

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

MySQLの変数をSQLのLIKEで活用する!

どうでも良い話ですが、設定した変数をLIKE検索で使う場合、%%ってどうすればいいの?というのがわからなかったのでメモしました。

少なくともこの書き方ではない模様

SET @ARTIST='Michael' ;
SELECT artist_name FROM artist_master
WHERE
  artist_name LIKE @ARTIST
;

さてさて正解は。。

CONCATを利用してワイルドカードを追記する

SET @ARTIST='Michael' ;
SELECT artist_name FROM artist_master
WHERE
   artist_name LIKE CONCAT('%',@ARTIST,'%')
;

。。が正解でした!!

その他

これでもいいですが、変数使い回しができなさそう。

SET @ARTIST='%Michael%' ;
SELECT artist_name FROM artist_master
WHERE
   artist_name LIKE @ARTIST
;

MySQLでの変数の使い方については、以前ここにまとめました

hit.hateblo.jp

f:id:hit10231023:20180309104332j:plain