MySQL SELECT時にCASE文で値をわかりやすく出力するサンプル 

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

となります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です