MySQL / 4. Работа со строками

Проверка вхождения подстроки в строку

Задача
Вы хотите узнать, встречается ли указанная строка в другой строке.

Решение
Используйте функцию LOCATE().

Обсуждение
Функция LOCATE() принимает два аргумента – искомую подстроку и строку, в которой вы ее ищете. Возвращаемое значение – это позиция, в которой найдена подстрока, или 0, если такой подстроки нет. Можно указать необязательный третий аргумент – позицию, с которой следует начинать поиск внутри строки:

mysql> SELECT name, LOCATE('in',name), LOCATE('in',name,3) FROM metal;

+------------ + -----------------------+-------------------------- +
| name        | LOCATE('in',name)  | LOCATE('in',name,3)  |
+------------ +----------------------- + --------------------------+
| copper      |                            0  |                                 0 |
| gold          |                             0 |                                 0 |
| iron           |                             0 |                                 0 |
| lead          |                             0 |                                 0 |
| mercury    |                             0 |                                0 |
| platinum   |                              5 |                                5 |
| silver        |                              0 |                                0 |
| tin            |                              2 |                                0 |
+----------- + ------------------------+------------------------- +

Функция  LOCATE() не чувствительна к регистру начиная с MySQL 4.0.0, но
была чувствительна к нему в более ранних версиях.

Статьи по MySQL на эту тему:

FULLTEXT поиск и короткие слова
Буквальная интерпретация метасимволов в шаблонах
Включение и исключение слов из FULLTEXT - поиска
Поиск по образцу с помощью регулярных выражений
Поиск по образцу с помощью шаблонов SQL

Вернуться в раздел: MySQL / 4. Работа со строками