回答

收藏

SQL where field vs.where field =具有多个ors?

技术问答 技术问答 212 人阅读 | 0 人回复 | 2023-09-14

哪个更适合性能?…可读性/可理解性?…公认的标准?4 [; C7 Y4 A8 Y# J
SELECT *FROM WhereverWHERE Greeting IN ('hello','hi','hey')或者! r) u1 e. I2 s6 w4 p
SELECT *FROM WhereverWHERE Greeting = 'hello'    OR Greeting = 'hi'   OR Greeting = 'hey'第一个对我来说似乎更直观/更清晰,但我不确定接受的标准和性能。
7 ], ?* n. a5 v+ |                                                               
" v' y5 w( U0 Y& \2 Y' u+ |! u    解决方案:                                                                : v+ B- @. ~. K- s, ]
                                                                它具有更高的可读性和更广泛的接受性:+ B+ I8 r( P1 U9 f  ~6 @; _+ k! A
SELECT *FROM WhereverWHERE Greeting in ('hello','hi','hey')所有现代SQL服务器会优化您的查询,因此它们可能会被更改为服务器上运行的相同代码,因此性能差异可以忽略或根本不存在。/ U: ]% [( T1 d
编辑:- {0 l  D) q3 k: J3 b( C! Z& S4 E
显然,该in选项速度更快,因为它评估为二进制查找,而倍数则=只需分别撤回每个句子。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则