【MySQL】SQLでif文的なことをする場合はCASEを使う
2019/03/01
SQLでif文的なことをしたい場合は、CASE文を使えばいいってことでの備忘録。
CASE文を使い、SQLでif文的なことをする
例
SELECT時を想定。
フラグが 1 の場合は「あり」、0 の場合は「なし」と出力したい場合。
1 2 3 4 5 6 7 8 9 10 11 12 |
SELECT name, flg, -- 0 or 1 (CASE WHEN flg = 1 THEN 'あり' WHEN flg = 0 THEN 'なし' ELSE null END) AS '有無' -- あり or なし FROM table WHERE (略) |
例2
日本語を当てたいという場合は普通にLIKE検索のように書けば万事OK。
住所に『岸和田市』が含まれる場合は「だんじり」、『貝塚市』が含まれる場合は「水なす」を「名物」カラムに書き出す仕様のSQLの場合は以下のようにすれば実現可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SELECT id, user_name, user_address, CASE WHEN user_address LIKE '%岸和田市%' THEN 'だんじり' WHEN user_address LIKE '%貝塚市%' THEN '水なす' -- 以下略 ELSE '' END AS '名物' FROM tables WHERE (略) |
お手軽ですね。