iteye_2787
2009-06-18 17:55
浏览 358

华为面试题-一个很怪异的SQL

华为的一个面试题,高手帮看看答什么好。
题目是这样的:
select * from table

select * from table where name like '%%' and addr like '%%'
and(1_addr like '%%' or 2_addr like '%%' or 3_addr like '%%'
or 4_addr like '%%')
请问这个检索结果有什么不同?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • ywbanm 2009-06-18 19:09
    已采纳

    楼主搞清楚一点就明白了

    like '%%' 匹配除了NULL以外的所有字符串包括空字符串

    上面第2个的意思是 select出来 name addr不为NULL且 1_addr 2_addr 3_addr 4_addr 有一个不为NULL的记录

    点赞 打赏 评论
  • fyc2008fyc 2009-06-18 19:13

    如果第二个的条件中有索引或者主键的话,那么第二个查询的速度快,如果没有的话两者的查询速度差不多

    点赞 打赏 评论
  • fyc2008fyc 2009-06-18 19:16

    不好意思,刚才看错了,‘%%’是除去null以外的数据,支持楼上

    点赞 打赏 评论

相关推荐 更多相似问题