如何使用数组而不是单个值来执行MySQL查询?
我有一个这样的值列表:如何使用数组而不是单个值来执行MySQL查询?,mysql,sql,Mysql,Sql,我有一个这样的值列表: [1000, 1100, 1200] SELECT * FROM test_table WHERE mz1_shifted BETWEEN (1000 - 1) AND (1000 + 1) 我想执行一个MySQL查询,查找数据库中某个列在每个值的容差值(比如+/-1)内的所有条目,如下所示: [1000, 1100, 1200] SELECT * FROM test_table WHERE mz1_shifted BETWEEN (1000 - 1) AN
[1000, 1100, 1200]
SELECT *
FROM test_table
WHERE mz1_shifted
BETWEEN (1000 - 1) AND (1000 + 1)
我想执行一个MySQL查询,查找数据库中某个列在每个值的容差值(比如+/-1)内的所有条目,如下所示:
[1000, 1100, 1200]
SELECT *
FROM test_table
WHERE mz1_shifted
BETWEEN (1000 - 1) AND (1000 + 1)
我是否必须执行多个查询,或者是否可以以某种方式传入数组:
....
BETWEEN ([1000, 1100, 1200] - 1) AND ([1000, 1100, 1200] + 1) #pseudocode
你会把你的身体和你的条件放在一起
SELECT *
FROM test_table
WHERE
mz1_shifted BETWEEN (1000 - 1) AND (1000 + 1)
OR
mz1_shifted BETWEEN (1100 - 1) AND (1100 + 1)
OR
mz1_shifted BETWEEN (1200 - 1) AND (1200 + 1)
您可以在每个范围的子句之间添加不同的
,并将它们与或
串在一起<代码>位置(mz1_在(1000-1)和(1000+1)之间移动)或(mz1_在(1100-1)和(1100+1)之间移动)
。谢谢--这是最有效的方法吗?我将在PHP中构造一个查询生成器来附加'OR…'子句(如果是这样的话)。我想MySQL可能会有一种内置的方式来处理输入列表。你说的“高效”是什么意思?你写代码的效率如何?高效意味着它运行速度快?在最短执行时间方面高效:-)。。这将在具有数亿个entries的表上运行。如果希望它快速运行,则需要在WHERE子句中的列上具有索引。有关索引的重要性以及如何使用索引的介绍,请参见。