找出员工名字中含有a和e的

解决方案 »

  1.   

    select * from name where name like "%a%" and name like "%e%"
    应该还有更高效的吧
      

  2.   

    select 
      * 
    from 
      tb 
    where 
      name like '%a%' 
    and 
      name like '%e%'
      

  3.   

    select   * from   tb where   name like '%a%' and   name like '%e%'
      

  4.   

    确实like "%a%" and name like "%e%" 不太高效了,特别是表大时当然只有知道更详细的信息才能提高效率了,
    比如说,
    如果知道'a','e'是name的首字母,
    可用:
    where name<'b' --'a'的情况 
    or (name>'d' and name<'f') --'e'的情况又如,如果'a'是在第X个位置,'e'是在第Y个位置
    可以这样写,
    where SUBSTRING(name,X,1)<Concat(Substring(name,1,X-1),'b') 
    --'a'的情况 
    or (SUBSTRING(name,Y,1)>Concat(Substring(name,1,Y-1),'d') and SUBSTRING(name,Y,1)<Concat(Substring(name,1,Y-1),'f')) 
    --'e'的情况按照类似的思想去做就可以了,对于大表是会快很多的