SQL选择语句与WHERE,AND,OR

dav*_*ave 13 mysql select operators where

我想SELECT用MySQL 执行查询.我的目标是选择一个兽医数据库中所有的狗,这将是sex=malefur=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";
Run Code Online (Sandbox Code Playgroud)

请原谅我的措辞,如果它太混乱了.

cod*_*ict 31

根据运算符优先级,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");
Run Code Online (Sandbox Code Playgroud)