我想用MySQL执行SELECT
查询。我的目标是在兽医数据库中选择所有狗sex=male
和fur=short
以及(color=black or size=big
)
注意:我想选择黑色或大小的狗。它们不必满足2个要求。他们只需要完成其中任何一个。
我在下面编写了SQL语句,但我不确定我是否正确:
SELECT name, sex, fur, color
FROM dogs
WHERE TRUE sex='male' AND fur='short' AND color='black' OR size="big";
请原谅我的措辞,如果它太混乱了。
答案 0 :(得分:31)
根据Operator precedence for 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");
答案 1 :(得分:4)
确保添加括号,以便正确评估OR条件。
SELECT name, sex, fur, color
FROM dogs
WHERE sex='male' AND fur='short' AND (color='black' OR size='big');
答案 2 :(得分:1)
在目标描述中使用括号的方式是正确的。语法是:
SELECT name, sex, fur, color
FROM dogs
WHERE sex="male" AND fur="short" AND (color="black" OR size="big");
答案 3 :(得分:0)
我已经使用了它和它的工作;
SELECT name, sex, fur, color
FROM dogs
WHERE sex="male" AND fur="short" AND (color="black" || size="big");
答案 4 :(得分:0)
从狗中选择性别,性别,毛皮,颜色的性别,其中sex =“ male”,而fur =“ short”,并且(color =“ black”或size =“ big”);