【MySQL】IF・CASE文
こんにちは😊Kintarouです。
現在エンジニア転職を目指してプログラミング学習中です👨🎓
夢はフリーランスエンジニアになって働く人にとって働く事が楽しくなるシステムを作ること!
と、愛する妻と海外移住すること🗽
プログラミングや読んでいる本のことなど、ブログに書いていきます!
twitter : https://twitter.com/ryosuke_angry
今回参考にさせて頂いたサイト様🙇♂️ dotinstall.com
今日は簡単にMySQLのIF・CASE文をまとめます。
IF文
MySQLでIF文を使ってデータを抽出します。
今回のデータは以下です。
9つのツイートがあり、ツイート内容(message)、いいね数(likes)、位置情報(area)で構成されています。
CREATE TABLE tweets ( id INT NOT NULL AUTO_INCREMENT, message VARCHAR(140), likes INT, area VARCHAR(20), PRIMARY KEY (id) ); INSERT INTO tweets (message, likes, area) VALUES ('tweet-1', 12, 'Tokyo'), ('tweet-2', 8, 'Fukuoka'), ('tweet-3', 11, 'Tokyo'), ('tweet-4', 3, 'Osaka'), ('tweet-5', 8, 'Tokyo'), ('tweet-6', 9, 'Osaka'), ('tweet-7', 4, 'Tokyo'), ('tweet-8', 10, 'Osaka'), ('tweet-9', 31, 'Fukuoka');
この内容を、いいね数が10より多いかどうかで条件をつけてみます。
SELECT *, IF(likes > 10, 'A', 'B') AS rank FROM tweets;
likesが10より大ければ'A'、10以下であれば'B'というrankに分ける。という内容です。
CASE文
続いてCASE文です。
いいね数が10より大きければ'A'、10以下だが5より大きければ'B'、5以下なら'C'という風に分けます。
SELECT *, CASE WHEN likes > 10 THEN 'A' WHEN likes > 5 THEN 'B' ELSE 'C' END AS rank FROM tweets;
以上、どなたかの参考になれば幸いです😊