【MySQL】MySQLでcase文を使う場合にちょいちょいやる凡ミス

投稿者:

ちょいちょいやっちゃうんですよ(´・ω・`)

ちょくちょく使うんだけど気づかずに何度となく500エラーを出してしまうシリーズ。

自戒の意味でコードを晒します

CASE WHEN gender=0 THEN '男性'
WHEN gender=1 THEN '女性'
ELSE 'トランスジェンダー' END

こういうやつですが

select (CASE WHEN gender=0 THEN '男性'
WHEN gender=1 THEN '女性'
ELSE 'トランスジェンダー' END) as format_gender

このように使いますね。 CodeIgniterでは

$this->db->select(
  "(case when gender =0 then '男性' 
  WHEN gender=1 THEN '女性'
  ELSE 'トランスジェンダー' end) as format_gender"
);

と記述するはずが

$this->db->select(
  "(case when gender =0 then '男性' 
  WHEN gender=1 THEN '女性'
  ELSE 'トランスジェンダー') as format_gender");

後ろのendを忘れて、SQL構文間違ってんぞ!喰らえ500エラーじゃ! とやられてしまうのです。

本当によく忘れるので戒めの意味を込めて。

コメントを残す