2013-02-17 5 views
0

У меня есть следующий SQL запрос, который возвращает все слова, содержащие NANI.сравнить предложение LIKE с полным словом

SELECT * FROM some_tbl WHERE q LIKE '%NANI%'; 

Это хорошо, когда у меня есть предложение в моей базе данных, как это:

Нани родился в Кабо-Верде и эмигрировал в Европу со своей семьей в раннем возрасте.

Но если я напечатаю только NA или NI с вышеуказанным запросом, это предложение вернется снова.

Мне нужен образец, который сравнивает предложение LIKE с полным словом, а не частью слова, любыми идеями?

+0

вы рассматриваете только «белое пространство» в качестве разделителя? Или специальные символы? Например «My-NANI ...». Возможно, вы захотите пойти с REGEXP вместо LIKE, если вы рассматриваете специальные символы также как разделители. – Slowcoder

ответ

2

Просто поместите пробелы вокруг вашей целевой строки:

SELECT * 
FROM some_tbl 
WHERE q LIKE '% NANI %' 
    or q LIKE 'NANI %' 
    or q LIKE '% NANI' 
    or q = 'NANI'; 
+0

Спасибо, работайте как шарм ;-) – NullPointer

+1

@ DKN Обновленный ответ, включающий случай с «одним словом». – BellevueBob

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