sql条件顺序

5ssjco0h  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(245)

我有以下sql语句:

SELECT * FROM PRODUCTS WHERE price= 6000 AND price < 8000 OR price = 10000;

我已经测试过了,它会退回所有6000或10000美元的产品。然而,我试着做了一些研究,在这种情况下,语句的阅读顺序,但没有找到任何东西。我正在努力理解它,无法清楚地在我的头脑中建立它。
如果这两个条件是相反的,或者如果我们有多个和/或没有用括号隔开的条件呢?系统将如何解释两个以上未分隔的条件?

tag5nh1u

tag5nh1u1#

AND 优先于 OR . 这意味着它将找到两个“组”中的所有行:
那些有 price= 6000 AND price < 8000 .
加上有 price = 10000 .
第一组将只选择price=6000的,因为条件要求price为该特定值,而条件 price < 8000 因为它变得多余而被丢弃。
第二组将找到值为10000的行(显然)。

ffx8fchx

ffx8fchx2#

你必须重写 WHERE 条款如下:,

SELECT * FROM PRODUCTS WHERE (price between 6000 AND 8000) OR (price = 10000);

这将为您提供6000到8000以及10000之间的价格结果

相关问题