MySQL

MySQL

【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]

お手軽ですね。

-MySQL
-, , ,