日期:2014-05-17  浏览次数:20823 次

查询时 =与like 的区别
select * from s_emp
where lower(last_name) = lower('PATEL')

select * from s_emp
where lower(last_name) like lower('PATEL')

用=与like得到的效果一样啊,上面的精准查找用“=”没问题,但用like是不是不规范啊? 
求解。谢谢了

------解决方案--------------------
你没加匹配符,like就相当于=的作用
------解决方案--------------------
不是的,= 号是匹配里面的内容完全相同,like是模糊匹配,各有各的用处
例如
select * from emp where ename like 'S%' --可以查询到姓名S开头的所有人
select * from emp where ename like '_O%' ---可以查询到姓名第二个字母为O的所有人
------解决方案--------------------
=是完全一样,like是与你要找的东西相似的 比如你查一个字符串里包含PATEL
------解决方案--------------------
select * from s_emp
where lower(last_name) = lower('PATEL')

select * from s_emp
where lower(last_name) like lower('PATEL')

虽然结果一样,但是 = 的性能比like高... ...like是不规范的用法,有点2b青年的样子... ...
------解决方案--------------------
如果条件值精确,少用like,资料量大的时候慢死
------解决方案--------------------
迫不得已不用Like