MSSQL中的语句
SELECT * FROM Person WHERE FamilyName LIKE '[WY]ang';如何转化成MySQL? 我知道可以用正则,但是会不会有性能问题?
SELECT * FROM Person WHERE FamilyName REGEXP '^[WY]ang$';

解决方案 »

  1.   

    应该没有,感觉正则比LIKE运行速度快一些
      

  2.   

    本帖最后由 ACMAIN_CHM 于 2009-06-01 10:52:52 编辑
      

  3.   

    效率不如FamilyName <> 'Wang' and FamilyName <> 'Yang';
    
      

  4.   

    FamilyName LIKE '[WY]ang';==FamilyName = 'Wang' or FamilyName= 'Yang';
    但是FamilyName LIKE '[WY][ab][1-9]ng';这样不行了吧?不具有通用性。
      

  5.   


    是的,如果说样就没办法了。但 like 'W%' or like 'Y%' 还可以利用CHAR字段的部分索引(如果有的话) REGEXP 则用不上这种索引了。只能全表扫描。