在性能方面,哪一个更好?在可读性/可理解性方面,...in ?在公认标准方面,...in?
SELECT *
FROM Wherever
WHERE Greeting IN ('hello', 'hi', 'hey')或
SELECT *
FROM Wherever
WHERE Greeting = 'hello'
OR Greeting = 'hi'
OR Greeting = 'hey'第一个对我来说似乎更直观/清晰,但我不确定公认的标准和性能。
发布于 2010-02-27 00:53:28
它更具可读性,也更容易被广泛接受:
SELECT *
FROM Wherever
WHERE Greeting in ('hello', 'hi', 'hey')所有现代SQL server都会优化您的查询,因此它们都可能被更改为在服务器上运行的相同代码,因此性能差异将可以忽略不计或根本不存在。
编辑:
显然,in选项更快,因为它的计算结果是二进制查找,而multiple =只计算每个语句的值。
发布于 2010-02-27 00:56:38
所有的主要引擎(MySQL、PostgreSQL、Oracle和SQL Server)都会按照完全相同的计划对其进行优化。
发布于 2010-02-27 00:59:11
性能=相同。
可读性= "IN“
https://stackoverflow.com/questions/2343242
复制相似问题