こういうテーブル(RECIPEテーブル)があります。
MENU_ID | MENU_NAME | INGREDIENT1 | INGREDIENT2 | INGREDIENT3 | INGREDIENT4 | INGREDIENT5 |
---|---|---|---|---|---|---|
1 | カレー | ニンジン | ジャガイモ | お肉 | ルー | |
2 | 肉じゃが | ジャガイモ | お肉 | しらたき | ||
3 | 味噌汁 | わかめ | 豆腐 | 油揚げ | ||
4 | ハンバーグ | 卵 | お肉 | 玉ねぎ | パン粉 |
このテーブルの中から、『材料に「お肉」を使っているもの』を検索したい!
こう書く?
パターン1
SELECT MENU_NAME FROM RECIPE
WHERE (INGREDIENT1 = 'お肉'
OR INGREDIENT2 = 'お肉'
OR INGREDIENT3 = 'お肉'
OR INGREDIENT4 = 'お肉'
OR INGREDIENT5 = 'お肉')
こう書ける!
パターン2
SELECT MENU_NAME FROM RECIPE
WHERE 'お肉' IN (INGREDIENT1
,INGREDIENT2
,INGREDIENT3
,INGREDIENT4
,INGREDIENT5)
とはいえ…
実際はどっちのほうが良いんでしょう。
「お肉」をたくさん書かなくて済むから後者の方が見た目は良い…?
(そもそもINGREDIENTテーブル作ったら良いじゃんって思うんだけど…)
他に書き方があったら教えてください。
ちなみに
左辺に定数を記述するスタイルのことを「ヨーダ記法」と言うそうです。
May the Force be with us...