MySQL точное определение существования слов в таблице Поле

У меня есть запрос. Есть ли встроенная функция или любой другой метод, связанный с MySQL, который будет возвращать строки, содержащие EXACT word в поле таблицы базы данных? Я знаю, что с оператором MySQL LIKE вы можете искать заданный шаблон в столбце, который будет соответствовать строковому значению в строке шаблона, содержащей символы wild-card. Но с предложением MySQL LIKE оно также вернет записи подстроки.

Например.

Предположим, что три значения столбцов выглядят следующим образом:

1. "Take another shot of courage" 2. "The End of This age is Not Yet" 3. "Employers can obtain this wage rate by submitting a request" 

Я хочу получить все строки, в которых значение столбца содержит точное слово «возраст»,

Если мы подготовим такой запрос

 SELECT * FROM sometable WHERE somefield LIKE '%age%' 

Он вернет все три строки. Но я хочу только получить второй ряд. Как мы это достигаем? Заранее спасибо.

Ура,
Дженсон.

Solutions Collecting From Web of "MySQL точное определение существования слов в таблице Поле"

Использовать этот запрос

 SELECT * FROM sometable WHERE somefield LIKE '% age %' OR somefield LIKE 'age %' OR somefield LIKE '% age' 

Вы можете использовать механизм регулярных выражений MySQL и сопоставлять символы границы слова [[:<:]] и [[:>:]]

Это будет соответствовать age но не courage wage или age . Он также будет соответствовать возрасту -age- или любой другой строке, где age текста окружен символами без слов . Это означает, что он будет соответствовать age в начале и конце строки.

По моему мнению, это немного менее сложно, чем три условия. Если возвращаемые совпадения типа -age- приемлемы, вы можете это рассмотреть.

Я не тестировал производительность или переносимость этого запроса, чтобы вы могли подумать об этом.

 SELECT * FROM sometable WHERE somefield RLIKE '[[:<:]]age[[:>:]]'; 

Попробуй это

  1 SELECT * FROM sometable WHERE somefield LIKE '% age %' to search in middle of string 2 SELECT * FROM sometable WHERE somefield LIKE '% age' if word is at end of string 3 SELECT * FROM sometable WHERE somefield LIKE 'age %' if your word is at starting of the string