华为面试题-一个很怪异的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 '%%')
请问这个检索结果有什么不同?

楼主搞清楚一点就明白了

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

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

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

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