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

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

Решение
Используйте функцию 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, но
была чувствительна к нему в более ранних версиях..



Оцените статью: (0 голосов)
0 5 0

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

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