mysql - 带有 WHERE、AND 和 OR 的 SQL 选择语句

标签 mysql select operators where

我想用 MySQL 执行 SELECT 查询。我的目标是选择 vert 数据库中的所有狗,它们是 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";

请原谅我的措辞太困惑了。

最佳答案

根据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");

关于mysql - 带有 WHERE、AND 和 OR 的 SQL 选择语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3581784/

相关文章:

mysql - Thinking Sphinx - 搜索博客文章的标题、内容和标签

android - 使用mysql估计表大小

mysql - 我如何使用这个复杂的表格结构按日期和时间订购我的商品?

java - 3*012 = 30 而不是 36。这是为什么?

mysql - 如何在排除数字的同时找到范围内的随机数

Python Pandas : Select columns that their content does not contain a value

MySQL:选择不在数据库中的值

c - 选择时的套接字阻止和超时

c++ - 运算符重载的基本规则和惯用法是什么?

c - C 中的优先级运算符