【发布时间】:2009-05-15 15:03:38
【问题描述】:
我最近注意到有人使用 IN 似乎有点不合适。我觉得我错过了一个技巧 - 也许有速度提升或其他什么?
这个查询:
SELECT * FROM pages WHERE is_visible IN ($visibility)
为什么要使用它?为什么不:
SELECT * FROM pages WHERE is_visible = $visibility
当然,如果是这样的话:
SELECT * FROM pages WHERE is_visible
IN ($visibility,$invisibility,$somethingelse)
那么WHERE x IN (1,2,3) 是WHERE x = 1 OR x = 2 OR x = 3 的更好替代品,对吧?但肯定这是您应该使用 IN 的唯一场景?
无论如何,感谢您的宝贵时间 - 我期待您的回复!
【问题讨论】:
-
感谢大家的回复。在这种情况下,$visiblity 是可信的,并且始终为 0 或 1。所以在我看来,这种使用“WHERE ... IN ...”毕竟是不必要的!
-
现在并不总是意味着永远。开发人员可能正在为“以防万一”的时刻做准备。
-
雅格尼。以防万一的情况永远不会到来。