MYSQL(自分が書いた社内Wikiから勝手に転載)
MYSQLのIF文は、使いこなせば結構便利です。ネットにはなぜか
SELECT IF(2>1, "yes", "no")
こんな例文しか載っていなくてわかりづらいので、汎用的な例文とかを残しておきます。
create table tamagoya_menu (lunch_code varchar(3), menu varchar(255), main_flag char(1)); +------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+-------+ | lunch_code | char(3) | YES | | NULL | | | menu | varchar(255) | YES | | NULL | | | main_flag | char(1) | YES | | NULL | | +------------+--------------+------+-----+---------+-------+ insert into tamagoya_menu values('001', 'カニクリームコロッケ', 't'); insert into tamagoya_menu values('001', 'あじ塩焼', 'f'); insert into tamagoya_menu values('001', 'ホイコーロー', 'f'); insert into tamagoya_menu values('001', 'ボロニアソーセージ', 'f'); insert into tamagoya_menu values('001', 'スパゲティーナポリタン', 'f'); insert into tamagoya_menu values('001', 'カボチャサラダ', 'f'); insert into tamagoya_menu values('001', 'レモン', 'f'); insert into tamagoya_menu values('002', '五目とり釜めし', 't'); insert into tamagoya_menu values('002', 'まぐろ味噌漬焼', 'f'); insert into tamagoya_menu values('002', '金平ごぼう', 'f'); insert into tamagoya_menu values('002', '冷やっこ', 'f'); insert into tamagoya_menu values('002', '若鶏磯辺揚', 'f'); insert into tamagoya_menu values('002', 'ほうれんそうゴマ和え', 'f'); insert into tamagoya_menu values('002', '厚焼玉子', 'f'); insert into tamagoya_menu values('002', 'うずら豆', 'f'); +------------+------------------------+-----------+ | lunch_code | menu | main_flag | +------------+------------------------+-----------+ | 001 | カニクリームコロッケ | t | | 001 | あじ塩焼 | f | | 001 | ホイコーロー | f | | 001 | ボロニアメ[セージ | f | | 001 | スパゲティーナポリタン | f | | 001 | カボチャサラダ | f | | 001 | レモン | f | | 002 | 五目とり釜めし | t | | 002 | まぐろ味噌漬焼 | f | | 002 | 金平ごぼう | f | | 002 | 冷やっこ | f | | 002 | 若鶏磯辺揚 | f | | 002 | ほうれんそうゴマ和え | f | | 002 | 厚焼玉子 | f | | 002 | うずら豆 | f | +------------+------------------------+-----------+
よくわからない例かもしれませんが、以下は「main_flagがtならlunch_codeを、fならmenuをselectする」式です。
select if(main_flag = 't', lunch_code, menu ) as new_menu from tamagoya_menu; / 条件式 / 条件がtrue / 条件がfalse / +------------------------+ | new_menu | +------------------------+ | 001 | | あじ塩焼 | | ホイコーロー | | ボロニアメ[セージ | | スパゲティーナポリタン | | カボチャサラダ | | レモン | | 002 | | まぐろ味噌漬焼 | | 金平ごぼう | | 冷やっこ | | 若鶏磯辺揚 | | ほうれんそうゴマ和え | | 厚焼玉子 | | うずら豆 | +------------------------+
もちろん、表結合やグループ化なども行え、結構使い勝手がいいです。