首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL where field in与where field = with multiple ors?

SQL where field in与where field = with multiple ors?
EN

Stack Overflow用户
提问于 2010-02-27 00:50:28
回答 5查看 17K关注 0票数 17

在性能方面,哪一个更好?在可读性/可理解性方面,...in ?在公认标准方面,...in?

代码语言:javascript
复制
SELECT *
FROM Wherever
WHERE Greeting IN ('hello', 'hi', 'hey')

代码语言:javascript
复制
SELECT *
FROM Wherever
WHERE Greeting = 'hello' 
   OR Greeting = 'hi'
   OR Greeting = 'hey'

第一个对我来说似乎更直观/清晰,但我不确定公认的标准和性能。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-02-27 00:53:28

它更具可读性,也更容易被广泛接受:

代码语言:javascript
复制
SELECT *
FROM Wherever
WHERE Greeting in ('hello', 'hi', 'hey')

所有现代SQL server都会优化您的查询,因此它们都可能被更改为在服务器上运行的相同代码,因此性能差异将可以忽略不计或根本不存在。

编辑:

显然,in选项更快,因为它的计算结果是二进制查找,而multiple =只计算每个语句的值。

票数 21
EN

Stack Overflow用户

发布于 2010-02-27 00:56:38

所有的主要引擎(MySQLPostgreSQLOracleSQL Server)都会按照完全相同的计划对其进行优化。

票数 7
EN

Stack Overflow用户

发布于 2010-02-27 00:59:11

性能=相同。

可读性= "IN“

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2343242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档