MySQL Выберите точное слово - PullRequest
0 голосов
/ 05 марта 2012

У меня сейчас есть база данных с "Skönhet Kroppsvård Massage Spa" в качестве категории (в одну строку).

В настоящее время я использую

     WHERE Select6 LIKE '%spa%'

Я хочу выбрать, например.«Спа» и получите поля, содержащие «Спа», а не «Спас»

Ответы [ 5 ]

1 голос
/ 05 марта 2012

Не ставьте «%» в конце.Этот символ эквивалентен высказыванию «любая строка здесь».Поэтому, когда вы делаете% spa%, он будет соответствовать любой строке, которая содержит spa где-то посередине.

Если все ваши строки отформатированы, как вы сказали, и ваш поисковый термин всегда в конце, просто сделайте «% spa».Таким образом, вы найдете строки, которые заканчиваются на «Spa».

Так, например: ГДЕ ВЫБРАТЬ6 НРАВИТСЯ '% Spa'

1 голос
/ 05 марта 2012

Попробуйте выполнить следующее условие: один проверяет слово spa в любом месте текста, а другой - в конце.

WHERE Select6 LIKE '% spa %' or Select6 LIKE '% spa' or Select6 LIKE 'spa' or Select6 LIKE 'spa %'
0 голосов
/ 05 марта 2012

Просмотр полнотекстового поиска mySQL .Требуется некоторое время, чтобы войти в него и иметь некоторые оговорки, но это, вероятно, единственный разумный способ выполнить ваше требование.

Булевы полнотекстовые поиски должны работать для вас, например

SELECT * FROM articles WHERE MATCH (title,body)
AGAINST ('+Spa' IN BOOLEAN MODE);
0 голосов
/ 05 марта 2012
  1. Удалить% в конце позиции. Потому что обе стороны% ищут «Спа» в слове, а не в конце позиции.

    где Select6 НРАВИТСЯ '% Spa

Мне нравится @rs., потому что, если вы забыли обрезку, у вас тоже есть эти строки, поэтому используйте этот способ

 where Select6 LIKE '%Spa %' or Select6 LIKE '%Spa'
0 голосов
/ 05 марта 2012

Вы можете попробовать

WHERE Select6 LIKE '%spa%' AND NOT LIKE '%spas%'

это займет xxxxspaxxxx, но не xxxxspasxxxx

Так что это будет работать, если spa не последнее слово или первое

Или

ГДЕ выбрать6 НРАВИТСЯ «% spa%» ИЛИ Выбрать6 НРАВИТСЯ «% spa» ИЛИ Выбрать6 НРАВИТСЯ «spa%» ИЛИ Выбрать6 НРАВИТСЯ «spa» ИЛИ

spaконец '% spa'

спа в начале 'spa %'

только спа 'spa'

...