0

我正在验证表中是否存在一组字段值(例如:yyy、aaa 和 ccc),并正在使用 UNION 来收集我的结果,我希望有一个更优雅、更有效的解决方案:

表名:Example_Table

姓名 | 班级

xxx  | CSE <BR>
yyy  | EE  <BR>
zzz  | MECH <BR>
aaa  | CSE  <BR>
bb   | CSE <BR>

我的查询:

SELECT  IF(Name  IS NULL,"yyy ","")   
FROM Example_Table where (Name  LIKE '%yyy%') 
      UNION   
(SELECT  IF(Name  IS NULL,"aaa  ","")   
FROM Example_Table where (Name  LIKE '%aaa%')) 
      UNION   
(SELECT  IF(Name  IS NULL,"ccc ","")   
FROM Example_Table where (Name  LIKE '%ccc%'));

我需要知道表中不存在我需要的哪些字符串值。问题是,我使用的表有大约数千个元组,使用 UNION 似乎非常昂贵..

4

1 回答 1

0

寻找字符串从来都不是优雅的;)但是如果你想缩短你的代码,IN试试看。类似于...的东西

...WHERE Name IN ('yyy','aaa','ccc')....

于 2013-05-21T17:50:22.353 回答