12月22, 2014

sql的where子句中包含多个and和or是计算顺序问题

关于 sql的where子句中包含多个and和or是计算顺序问题,SQL在处理操作时会优先处理and操作,这就是很多人会得到很多错误的原因,举个例子:

假如有表product字段如下:id、product_id、product_price、product_name 现在要查找产品号为100和101,价格大于200的商品,你可能会这样做:

 select * from product where product_id = 100 or product_id = 101 and product_price > 200 

很抱歉,这是错误的,SQL会这样理解,它会查找产品号为101及价格大于200和产品号为100的产品 解决办法很简答,只要使用元括号就行了:

 select * from product where (product_id = 100 or product_id = 101) and product_price > 200

本文链接:https://901web.com/post/sql的where子句中包含多个and和or是计算顺序问题.html

-- EOF --

Comments

请在后台配置评论类型和相关的值。