ありがとうございます。
1) id=1 OR id=3
2)(id=1 OR id=3)
違いですが
1)は()がないのでORで id=3 と比較されないため
ORの影響は受けない。そのため id=1 が独り歩き
できるので id=1 と書かれ時点で、選択の対象とな
り出力される。
2)の場合()でくくった時点で、id=1とid=3 が比較され
真である id=3 が返される。 id=1 は
AND price<150 AND keyword LIKE '%赤い%'
のすべての条件を満たしていないため、出力されない。
以下解決です。
1)SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%赤い%'
idが1か3 で、price が 150未満で、keyword に 赤い を含むレコードが存在していません。
2)SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%赤い%'
id が1 もしくは idが3で price が150未満でkeywordに赤いを含むレコードは、id=1 のレコードのみです。
以上の回答得ましたが!?
Aンス:
id が1 もしくは idが3で price が150未満でkeywordに赤いを含むレコードは、id=1 のレコードのみです。
以上ですが質問があります・
「150未満でkeywordに赤いを含むレコードは、id=1 のレコードのみ」
が正しければですが
price が150未満で・・・
SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%赤い%'
と入力した場合において、以下が出力されるがおかしいと思います。
id item_name price keyword
1 いちご 180 赤い,甘い,ケーキ
イチゴの price は「180」なので 「price<150」は
「150未満が該当する意味」だとしたら?
それが正しければ price は「180」だから違いますよね
しかし id1が出力されるのは何故ですか?
根本的に私が間違っていたなら ごめんなさいです。
よろしくお願いいたします。
以下は以前、質問内容です。
テーブル my_items の全データは id 1 2 3 4の4件です。
id item_name price keyword
1 いちご 180 赤い,甘い,ケーキ
2 りんご 90 丸い,赤い,パイ
3 バナナ 120 パック,甘い,黄色
4 ブルーベリー 200 袋入り,青い,眼精疲労
SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
書籍には 以上をカッコでくくってくださいとあります。
結果は以下です。
id item_name price keyword
1 いちご 180 赤い,甘い,ケーキ
3 バナナ 120 パック,甘い,黄色
一応結果でました。
以下試しました。1)と2)の違いが分かりませんでした。
(id=1 OR id=3とした場合、・・値が空・・になるのは何故ですか?
よろしくお願いいたします。
1)SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%赤い%'
返り値が空でした (行数 0)。 (Query took 0.0006 seconds.)
2)SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%赤い%'
id item_name price keyword
1 いちご 180 赤い,甘い,ケーキ
回答1件
あなたの回答
tips
プレビュー