mysqli-multi-query - 子句之间的多个 MySql WHERE

标签 mysqli-multi-query

新手 MySql 程序员感谢您的耐心。

我试图在满足 3 个不同条件的表中跟踪 ID 号,这是 Iv 得到的,但是查询不会返回表中明显匹配的任何结果。想法?

SELECT *
FROM `table`
WHERE `x` BETWEEN 80 AND 20
AND `y` BETWEEN 120 AND 20
AND `z` BETWEEN 40 AND 10
LIMIT 0 , 30

我在理论上认为这应该有效吗?

最佳答案

关闭,但没有雪茄。 :)

SELECT * FROM table 
WHERE (x BETWEEN 20 AND 80) AND 
(y BETWEEN 20 AND 120) AND 
(z BETWEEN 10 AND 40) LIMIT 0 , 30

解释一下,SQL服务器一般评估x BETWEEN val1 AND val2x >= val1 AND x <= val2 .原始查询的编写方式,第一个条件是 x >= 120 AND x <= 20) ,这显然不是你想要的。

不同条件周围的括号确保在考虑 AND 之前完全评估每个条件。它在 SQL 中的大部分时间都会产生影响,即使使用它们不是一个好主意,这样您的意图在 6 个月后您(或其他人)必须再次查看查询时就很清楚了。

关于mysqli-multi-query - 子句之间的多个 MySql WHERE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5268369/

相关文章:

php - mysqli_insert_id 因 mysqli_multi_query 而失败

php - 如何解决mysqli_fetch_array()错误

php - mysqli_multi_query 出现问题

php - "Commands out of sync; you can' t 现在运行此命令”- 由 mysqli::multi_query 引起

php - 为下拉菜单排序多查询数组

php - 试图理解 php mysqli multi_query

PHP - SQL 语句中的多个变量用法

php - MySQLi Multi_Query 发布

mysql - 一个事务中的多个插入 mysqli php5