2013-04-17 1 views
0

Есть ли способ сделать запрос выбора, который ищет таблицу для данного слова, и если она найдена, то выйдите из запроса и не продолжайте считать?Как сделать выбор до тех пор, пока не найдется 1 результат, который существует в mysql

, например, у меня есть таблица (t1), имеют следующие значения:

id   tag tagdate 
1   my  1-1-2012 
2   name 1-1-2012 
3   you 1-1-2012 
4   foo 1-1-2012 
5   make 1-1-2012 
6   ir  1-1-2013 
7   too 1-1-2013 
..  ..  ........ 
..  ..  ........ 
..  ..  ........ 
100000 foo 1-1-2013 

, например, я сделаю запрос, чтобы убедиться, что из «Foo» слово существует или нет, и если существует только возвращает 1 и остановите запрос продолжения.

Запрос, который я сейчас сделать это подсчет, чтобы убедиться, что от слова существует на столе или нет:

select count(tag) from t1 where tag = 'foo' 

но этого Sql поиска заявления всех таблиц для слова «Foo» и возврата его счет на столе, и если в таблице будет 100 000 записей, запрос будет искать по всем 100 000 записей для слова «foo». и это теряет время, пока мы просто хотим знать, существует ли «foo» на столе или нет.

так есть ли какое-либо заявление для поиска таблицы для слова и слова, найденного тогда, когда он перестает читать таблицу и возвращает 1 или что-то в этом роде?

+0

@ ajmalmhd04: Попробуйте Хранимую процедуру для определенного набора результата – SenthilPrabhu

ответ

0

Может быть что-то вроде:

SELECT IFNULL(SIGN(id), 0) FROM t1 WHERE tag = 'foo' 
LIMIT 1 
1

Я хотел бы сделать это следующим образом:

SELECT EXISTS(SELECT NULL FROM t1 WHERE tag = 'foo') 

Это вернет 0 (FALSE), если тег Foo не существует, 1 (TRUE), в противном случае. Использование индекса на колонке tag позволит избежать полного сканирования таблицы:

CREATE INDEX idx_tag ON t1 (tag);