xcxy2015
xcxy2015
采纳率50%
2017-08-08 01:58 阅读 1.4k

一个关于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条回答 默认 最新

  • 已采纳
    admin_CMZ admin_CMZ 2017-08-08 02:02

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

    点赞 5 评论 复制链接分享
  • w19930104q 唯灬独尊 2017-08-08 08:03

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

    点赞 1 评论 复制链接分享
  • qq_23292875 Hefei19881002 2017-08-08 02:06

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

    点赞 评论 复制链接分享
  • m0_37658388 何大帅 2017-08-08 02:11

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

    点赞 评论 复制链接分享

相关推荐