LoginSignup
2
0

More than 5 years have passed since last update.

【Oracle】複数項目から同一値を検索したいっ!

Posted at

こういうテーブル(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...

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0