Chr*_*her 4 mysqli-multi-query
新手MySql程序员感谢您的耐心等待.
我试图在满足3个不同条件的表中跟踪Id编号,这是我得到的,但是查询剂量返回表中有明显匹配的任何结果.思考?
SELECT *
FROM `table`
WHERE `x` BETWEEN 80 AND 20
AND `y` BETWEEN 120 AND 20
AND `z` BETWEEN 40 AND 10
LIMIT 0 , 30
Run Code Online (Sandbox Code Playgroud)
理论上我认为这应该有用吗?
关闭,但没有雪茄.:)
SELECT * FROM table
WHERE (x BETWEEN 20 AND 80) AND
(y BETWEEN 20 AND 120) AND
(z BETWEEN 10 AND 40) LIMIT 0 , 30
Run Code Online (Sandbox Code Playgroud)
为了解释,SQL服务器通常评估x BETWEEN val1 AND val2相同x >= val1 AND x <= val2.原始查询的编写方式,第一个条件是x >= 120 AND x <= 20),显然不是你想要的.
围绕不同条件的括号确保在考虑AND之前完全评估每个条件.它在SQL中的大部分时间都有所不同,即使它不是这样,使用它们也是一个好主意,所以当你(或其他人)必须再次查看查询时,你的意图将在6个月后清楚.
| 归档时间: |
|
| 查看次数: |
14755 次 |
| 最近记录: |