CASE式で値を変えて引っ張ってくる![MySQL] 
チョコボールです。
MySQLにてSELECT時に値の形を変えて引っ張ってくる方法。
僕はステータスが数字で管理されているようなDB(※例: 男性が「1」、女性が「2」等)をfetchしてきて表示する時等に使ってます。
取り敢えずSELECTで引っ張ってきてプログラム側で加工してやればいいんですが、CASE式を使えば加工の必要が無いので結構楽です。
下記のようなmemberテーブルがあったとします。
+----+------+--------+ | id | name | status | +----+------+--------+ | 1 | 田中 | 0 | | 2 | 辻川 | 1 | | 3 | 鈴木 | 0 | | 4 | 山本 | 1 | | 5 | 西田 | 0 | | 6 | 上村 | 2 | | 7 | 星野 | 0 | | 8 | 宮村 | 3 | | 9 | 川田 | 1 | | 10 | 山田 | 1 | +----+------+--------+
ステータス 0 → 通常会員 1 → 有料会員 2 → 退会済会員
そのまま
SELECT * FROM member
としてfetchすると
Arrray ( [0] => Array ( [id] => 1 [name] => 田中 [type] => 0 ) [1] => Array ( [id] => 2 [name] => 辻川 [type] => 1 ) [2] => Array ( [id] => 3 [name] => 鈴木 [type] => 0 ) ・ ・ ・
のような感じで取得できますが、下記のようなSQLを組むことでプログラム側で加工無しに一発で引っ張ってくることが出来ます。
SELECT id, name, CASE WHEN type = '0' THEN '通常会員' WHEN type = '1' THEN '有料会員' WHEN type = '2' THEN '退会済会員' ELSE '不明' END type FROM member
Array ( [0] => Array ( [id] => 1 [name] => 田中 [type] => 通常会員 ) [1] => Array ( [id] => 2 [name] => 辻川 [type] => 有料会員 ) [2] => Array ( [id] => 3 [name] => 鈴木 [type] => 通常会員 ) ・ ・ ・
CASE式は他にもいろいろ使えるのでまた紹介します!