我有以下sql语句:
SELECT * FROM PRODUCTS WHERE price= 6000 AND price < 8000 OR price = 10000;
我已经测试过了,它会退回所有6000或10000美元的产品。然而,我试着做了一些研究,在这种情况下,语句的阅读顺序,但没有找到任何东西。我正在努力理解它,无法清楚地在我的头脑中建立它。如果这两个条件是相反的,或者如果我们有多个和/或没有用括号隔开的条件呢?系统将如何解释两个以上未分隔的条件?
tag5nh1u1#
AND 优先于 OR . 这意味着它将找到两个“组”中的所有行:那些有 price= 6000 AND price < 8000 .加上有 price = 10000 .第一组将只选择price=6000的,因为条件要求price为该特定值,而条件 price < 8000 因为它变得多余而被丢弃。第二组将找到值为10000的行(显然)。
AND
OR
price= 6000 AND price < 8000
price = 10000
price < 8000
ffx8fchx2#
你必须重写 WHERE 条款如下:,
WHERE
SELECT * FROM PRODUCTS WHERE (price between 6000 AND 8000) OR (price = 10000);
这将为您提供6000到8000以及10000之间的价格结果
2条答案
按热度按时间tag5nh1u1#
AND
优先于OR
. 这意味着它将找到两个“组”中的所有行:那些有
price= 6000 AND price < 8000
.加上有
price = 10000
.第一组将只选择price=6000的,因为条件要求price为该特定值,而条件
price < 8000
因为它变得多余而被丢弃。第二组将找到值为10000的行(显然)。
ffx8fchx2#
你必须重写
WHERE
条款如下:,这将为您提供6000到8000以及10000之间的价格结果