华为的一个面试题,高手帮看看答什么好。
题目是这样的:
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以外的数据,支持楼上