Функция 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 |