一个关于mysql里sql语句里面or关键字的问题

今天用mysql查询的时候,突然发现我在sql语句里面只是换了or关键字两边的顺序,可是查询结果就不一样,
可是or关键字两边不应该是等价的吗?麻烦哪位大神解答一下下面是那两个sql:

select * from question where( qtype = 'blank' AND( qrange like '%sql%' or '%java%')AND qdifficulty = 'primary' AND qstatae = 'pass');

select * from question where( qtype = 'blank' AND( qrange like '%java%' or '%sql%') AND qdifficulty = 'primary' AND qstatae = 'pass');

下面是mysql显示的查询结果(当运行这个sql的时候他会被选中,图片中sql顺序同上面的顺序):
图片说明

图片说明

4个回答

你的条件不一样了撒:
select * from question where( qtype = 'blank' AND( qrange like '%sql%' or qrange like '%java%')AND qdifficulty = 'primary' AND qstatae = 'pass'); 你把你sql语句这样写试试

xcxy2015
xcxy2015 嗯,问题解决了,谢谢你啦,我还是有点不清楚,那如果我那样写编译器是怎么解读的导致的错误呢?
接近 3 年之前 回复

你的问题是条件没写全,你觉得like A or B是对的,但是他不知道 ,你得写成like A or like B

楼上正解 or 后面 要跟完整的条件

1L说得对,那样写把条件跟上才对

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问