13

我想SELECT用 MySQL 执行查询。我的目标是选择兽医数据库中的所有狗,这些狗将是sex=malefur=shortcolor=black or size=big

注意:我想选择黑色或大号的狗。他们不必满足这两个要求。他们只需要满足其中任何一个。

我已经写了下面的 SQL 语句,但我不确定我是否正确:

SELECT name, sex, fur, color 
FROM dogs 
WHERE TRUE sex='male' AND fur='short' AND color='black' OR size="big";

如果太混乱,请原谅我的措辞。

4

5 回答 5

32

根据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");
于 2010-08-27T06:19:51.320 回答
4

确保添加括号,以便正确评估 OR 条件。

SELECT name, sex, fur, color 
FROM dogs 
WHERE sex='male' AND fur='short' AND (color='black' OR size='big');
于 2010-08-27T06:23:53.473 回答
1

您在目标描述中使用括号的方式是正确的。语法是:

SELECT name, sex, fur, color 
    FROM dogs 
    WHERE sex="male" AND fur="short" AND (color="black" OR size="big");
于 2010-08-27T06:18:11.627 回答
0

我已经使用了它及其工作;

SELECT name, sex, fur, color 
FROM dogs 
WHERE sex="male" AND fur="short" AND (color="black" || size="big");
于 2013-12-20T07:00:47.843 回答
0

从狗中选择名字、性别、毛皮、颜色,其中性别='男性'和毛皮='短'和(颜色='黑色'或尺寸='大');

于 2019-04-10T18:35:38.633 回答