901web前端博客

人生就像一副复杂拼图
每个人总有属於自己的记忆碎片
Theme By 网上下载

联系我

RSS

十二月 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

相关文章

返回