2014.06.10
【MySQL】SQLでif文のような条件分岐を行いたいならcase文を使うベシ!!


やりたかった事はSQLでの条件分岐
やりたかったのはSQL文の中でのif文のような条件分岐ですね。この項目だったら、このカラムにはこの値。といった様な形ですね。それをしたかったのです。 例えばこんな状態のテーブルがあります。

・このテーブルのcityカラムの最後の文字列が「区」であれば、nameカラムに「23区」、noカラムに「1」が表示されます。 ・そしてcityカラムの最後の文字列が「区」以外であれば、nameカラムに「23区外」、noカラムに「2」が表示されます。
SQLでif文のような条件分岐を行いたいならcase文
このやりたかった事を解決してくれたのがcase文でした。 上記の場合であれば以下のようなcase文を含めたSQLを発行すれば問題解決です!SELECT id, prefecture, CASE WHEN city LIKE '%区' THEN '東京都(23区)' WHEN city NOT LIKE '%区' THEN '東京都(23区外)' END name, CASE WHEN city LIKE '%区' THEN '1' WHEN city NOT LIKE '%区' THEN '2' END no, city, company_name FROM company ORDER BY name ASCDBにない情報でもSQLで条件分岐を設定して表現できるんですね。 こりゃ便利です!必要であれば是非試してみてください!