Функция LOCATE
Функция LOCATE осуществляет поиск
подстроки в строке и возвращает позицию ее
первого символа. Нумерация символов
начинается с 1. Если подстрока не найдена,
возвращается 0.
В отличие от функции POSITION,
функция LOCATE может начинать поиск не с
начала строки, а с указанной позиции.
Синтаксис
Поиск подстроки с начала строки:
SELECT LOCATE(substr, field) FROM table_name WHERE condition
Поиск подстроки, начиная с указанной позиции:
SELECT LOCATE(substr, field, start) FROM table_name WHERE condition
Таблицы для примеров
| id | text |
|---|---|
| 1 | Very long text! |
| 2 | Not very long text! |
| 3 | Just text! |
Пример
Давайте найдём в тексте позицию слова 'long':
SELECT id, text, LOCATE('long', text) AS pos FROM texts
Результат выполнения кода:
| id | text | pos |
|---|---|---|
| 1 | Very long text! | 6 |
| 2 | Not very long text! | 10 |
| 3 | Just text! | 0 |
Пример
Давайте найдём в тексте позицию слова
'long', начиная поиск с 8-го символа строки:
SELECT id, text, LOCATE('long', text, 8) AS pos FROM texts
Результат выполнения кода:
| id | text | pos |
|---|---|---|
| 1 | Very long text! | 0 |
| 2 | Not very long text! | 10 |
| 3 | Just text! | 0 |