开发者

MySQL query IS NOT test against multiple values

Is there a better way to write the following 'where' portion of a mysql query开发者_高级运维:

WHERE t.status IS NOT 'resolved'
  AND t.status IS NOT 'closed'
  AND t.status IS NOT 'deleted'

can they be combined into a single where statement?


WHERE t.status NOT IN ('resolved', 'closed', 'deleted')

Boolean algebra says these two expressions are equivalent:

NOT A AND NOT B AND NOT C

NOT (A OR B OR C)

This is DeMorgan's Law.


In most cases, you need to consider cost issue before attempting to combine these into something more readable and smarter. Check your explain plan or equivalent for MySQL if this change results in an increased cost.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜