关于 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
Comments
请在后台配置评论类型和相关的值。