MySQLにCASE文やIF文があるのを知っていても、使うシチュエーションがわからない、なんだか使いづらい…と感じている方も多いのではないでしょうか。
ここでは、SELECTするときに、CASEを使う方法を書いておきます。
私、思うにフラグを立てるような処理とかに使うといいと思います。(๑•̀ㅂ•́)و✧
calls というテーブルの中に、下記のようなデータがあったとして
id | driver_id | created 1 | 13 | 2018-11-19 11:23:25 2 | 15 | 2018-11-19 11:25:30 3 | 16 | 2018-11-19 11:26:30
ドライバーIDが “15” の時だけフラグを立てる的にわかりやすく出力したい、という場合があったとするとCASE文を使って次のように書けます。
SELECT id, CASE driver_id WHEN 15 THEN 1 ELSE 0 END FROM calls
結果は
id | CASE driver_id WHEN 15 THEN 1 ELSE 0 END 1 | 0 2 | 1 3 | 0
となります。
フィールドの名前がいやなので、エイリアスつけておきます。
SELECT id, CASE driver_id WHEN 15 THEN 1 ELSE 0 END as driver_himself FROM calls
結果は
id | driver_himself 1 | 0 2 | 1 3 | 0
となります。