小编典典

SQL-IN与NOT IN

sql

假设我有一个表,该表的列的取值范围是1到10。我需要选择除9和10以外的所有值的列。使用此查询时是否会有区别(在性能方面):

SELECT * FROM tbl WHERE col NOT IN (9, 10)

和这个?

SELECT * FROM tbl WHERE col IN (1, 2, 3, 4, 5, 6, 7, 8)

阅读 149

收藏
2021-04-07

共1个答案

小编典典

当涉及到性能,你应该总是分析代码(即运行查询数千次,并使用某种测量每个回路的性能stopwatch样品)。

但是在这里,我强烈建议您使用第一个查询来更好地维护将来。逻辑是您需要除9和10之外的所有记录。如果将值11添加到表中并使用第二个查询,则应用程序的逻辑将被破坏,这当然会导致错误。

编辑: 我记得这被标记为php,这就是为什么我在php中提供了示例,但我可能会误会。我想用您使用的语言来重写该示例并不难。

2021-04-07