PHP世纪论坛

 找回密码
 立即注册
搜索
查看: 292|回复: 0

sql中多个and和or的计算顺序

[复制链接]

32

主题

32

帖子

194

积分

新手上路

Rank: 1

积分
194
发表于 2016-3-10 22:27:14 | 显示全部楼层 |阅读模式
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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|PHP世纪论坛 ( 豫ICP备15004666号-2 )

GMT+8, 2018-6-25 12:18

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表