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

研究
Magda Ehlers at Pexels
この記事は約2分で読めます。

この記事は3年前の記事です。当時の情報、理解に基づいておりますのでご留意ください

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

ちょくちょく使うんだけど気づかずに何度となく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エラーじゃ! とやられてしまうのです。

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

コメント

タイトルとURLをコピーしました