2013-05-21 6 views
0

Я проверяю существование набора значений полей (например: yyy, aaa и ccc) в таблице и использую UNION для сбора моих результатов, предпочел бы больше элегантное и эффективное решение:MySQL Проверка наличия набора полей в таблице

TableName: 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 кажется очень дорогостоящим.

ответ

0

Ищите строки никогда не изящно;) Но если вы хотите укоротить свой код, попробуйте IN. Что-то похожее на ...

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

+0

Спасибо за ответ ... но я также необходимо знать, какие из строк присутствуют и которые не являются !! – user1840691

Смежные вопросы