Функция LOCATE
Функция LOCATE осуществляет поиск
подстроки в строке, возвращает позицию ее
первого символа. Учтите, что нумерация символов
начинается с 1.
В отличие от функции POSITION
функция LOCATE может начинать поиск не с
начала строки, а с определенного места.
Синтаксис
SELECT LOCATE(что_ищем, поле) FROM имя_таблицы WHERE условие
SELECT LOCATE(что_ищем, поле, начало_поиска) FROM имя_таблицы WHERE условие
Таблицы для примеров
| id айди |
text текст |
|---|---|
| 1 | Очень длинный текст! |
| 2 | Не очень длинный текст! |
| 3 | Просто текст! |
Пример
В данном примере в тексте ищется позиция
слова 'длинный':
SELECT *, LOCATE('длинный', text) as pos FROM texts
Результат выполнения кода:
| id айди |
text текст |
pos позиция подстроки |
|---|---|---|
| 1 | Очень длинный текст! | 7 |
| 2 | Не очень длинный текст! | 10 |
| 3 | Просто текст! | 0 |
Пример
В данном примере в тексте ищется позиция
слова 'длинный', поиск начинается
с 8-го символа строки:
SELECT *, LOCATE('длинный', text, 8) as pos FROM texts
Результат выполнения кода:
| id айди |
text текст |
pos позиция подстроки |
|---|---|---|
| 1 | Очень длинный текст! | 0 |
| 2 | Не очень длинный текст! | 10 |
| 3 | Просто текст! | 0 |