0

フィールドと行を持つテーブル Food_table があるとします。

food_type | food_name    | food_price
Meat      | steak        | 7.00 
Fruit     | red_apple    | 1.00
Fruit     | green_apple  | 1.10
Fruit     | yellow_apple | 0.50 
... etc

では、リンゴであり、価格が 1 ドル + .10% ($.90 >= food_price <= $1.10) の範囲内にあるすべての果物を選択するにはどうすればよいでしょうか。

したがって、このクエリは赤いリンゴと青リンゴを返します。これらは果物であり、リンゴでもあり、価格が 90 ドルから 1.10 ドルの範囲内であるためです。

与えられた例では、私は価格を知っていますが、果物の価格を知らなかったらどうなるでしょうか?

私のクエリ:

$sql = "SELECT * FROM Food_table WHERE 
food_type = 'Fruit' AND food_name LIKE '%apple%'  "

ただし、価格条項がありません。

ありがとうございます

詳細な説明: ユーザーが food_type、food_name を選択して価格を入力する 2 つの選択ボックスがある場合、価格が 10% 前後の食品を返品するにはどうすればよいですか?

4

4 に答える 4

1

このクエリを試してください:

SELECT *
FROM Food_table
WHERE food_type = 'Fruit'
AND food_name LIKE '%apple%'
AND price BETWEEN 0.90 AND 1.10

あなたが質問した条件をWHERE条項に追加しただけです。テストセットはありませんが、動作するはずです。

最後の条件は次のように書くこともできます

AND food_price >= 0.90 AND food_price <= 1.10

個人的には、最初のバージョンの方が読みやすいと思います。

于 2013-10-23T16:13:50.103 に答える
0

あなたはそのようにそれを試すことができます:

SELECT * FROM Food_table WHERE food_type = 'Fruit' AND food_name LIKE '%apple%' AND food_price >= 0.90 AND food_price <= 1.10
于 2013-10-23T16:15:35.183 に答える
0

価格がわからず、価格が X で、パーセンテージ範囲の 10 進数表現 (つまり 0.1) が Y である場合、簡単な計算を使用して次のようにすることができます。

SELECT *
FROM Food_table
WHERE food_type = 'Fruit'
AND food_name LIKE '%apple%'
AND price BETWEEN X - (X * Y) AND X + (X * Y)
于 2013-10-23T16:22:17.160 に答える