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