select * from s_emp
where lower(last_name) = lower('PATEL')select * from s_emp
where lower(last_name) like lower('PATEL')用=与like得到的效果一样啊,上面的精准查找用“=”没问题,但用like是不是不规范啊? 
求解。谢谢了

解决方案 »

  1.   

    你没加匹配符,like就相当于=的作用
      

  2.   

    不是的,= 号是匹配里面的内容完全相同,like是模糊匹配,各有各的用处
    例如  
    select * from emp where ename like 'S%'   --可以查询到姓名S开头的所有人
    select * from emp where ename like '_O%'   ---可以查询到姓名第二个字母为O的所有人
      

  3.   

    那么说,一般情况:= 可以被 like 代替;
    什么情况下 = 不能被 like 代替 ?
      

  4.   

    =是完全一样,like是与你要找的东西相似的 比如你查一个字符串里包含PATEL
      

  5.   

    select * from s_emp
    where lower(last_name) = lower('PATEL')select * from s_emp
    where lower(last_name) like lower('PATEL')虽然结果一样,但是 = 的性能比like高... ...like是不规范的用法,有点2b青年的样子... ...
      

  6.   

    如果条件值精确,少用like,资料量大的时候慢死