MySQLでSELECT
クエリを実行したいと思います。私の目標は、sex=male
とfur=short
と(color=black or size=big
)になる獣医データベース内のすべての犬を選択することです。
注:黒またはサイズが大きい犬を選択します。 2つの要件を満たす必要はありません。どちらか1つを満たす必要があります。
以下にSQLステートメントを記述しましたが、私が正しいかどうかはわかりません。
SELECT name, sex, fur, color
FROM dogs
WHERE TRUE sex='male' AND fur='short' AND color='black' OR size="big";
それがあまりにも混乱しているなら、私の言い回しを許してください。
MySQLの演算子の優先順位 によると、AND
はOR
よりも優先順位が高くなっています。
したがって、_C1 AND C2 OR C3
_は_(C1 AND C2) OR C3
_として扱われます
デフォルトの優先順位を上書きするには、括弧を次のように使用する必要があります:C1 AND (C2 OR C3)
あなたの場合、正しいクエリは次のとおりです。
_SELECT name, sex, fur, color
FROM dogs
WHERE sex='male' AND fur='short' AND (color='black' OR size="big");
_
OR条件が正しく評価されるように、必ず括弧を追加してください。
SELECT name, sex, fur, color
FROM dogs
WHERE sex='male' AND fur='short' AND (color='black' OR size='big');
目標の説明で括弧を使用する方法は正しいです。構文は次のとおりです。
SELECT name, sex, fur, color
FROM dogs
WHERE sex="male" AND fur="short" AND (color="black" OR size="big");
犬の名前、性別、毛皮、色を選択します。ここで、性別= '男性'と毛皮= 'ショート'および(色= '黒'またはサイズ= 'ビッグ');
私はこれとその働きを使用しました。
SELECT name, sex, fur, color
FROM dogs
WHERE sex="male" AND fur="short" AND (color="black" || size="big");