【发布时间】:2012-12-07 12:11:06
【问题描述】:
我开发了一个使用 OR 查询的系统:
SELECT * FROM tableA
JOIN tableB ON (idA = idB)
WHERE idA = 1 OR
idA = 2 OR
idA = 3 OR
idA = 4 OR
idA = 5 ...... OR
idA=100
与查询IN比较:
SELECT *
FROM tableA JOIN tableB ON (idA = idB)
WHERE idA IN (1,2,3,4,5,......,100)
MYSQL 数据库中最好的查询是什么?
【问题讨论】:
-
@StanleyW。谢谢...我没有使用搜索功能
-
对于这样的事情,除非你知道这个查询是你应用程序中的一个瓶颈,否则多个
OR子句的混乱逻辑是不值得的。 (即使它快一点。) -
IN() 是一个语法快捷方式,它(在语法术语中)与一系列 OR 完全相同,即
id IN(1,2)等于( id=1 OR id=2 )。在小范围内,您将很难找到两者之间的任何差异。在非常大规模的情况下,一长串 OR 的解释时间将处于劣势。