Функция LOCATE

Функция LOCATE осуществляет поиск подстроки в строке, возвращает позицию ее первого символа. Учтите, что нумерация символов начинается с 1.

В отличие от функции POSITION функция LOCATE может начинать поиск не с начала строки, а с определенного места.

Синтаксис

SELECT LOCATE(что_ищем, поле) FROM имя_таблицы WHERE условие
SELECT LOCATE(что_ищем, поле, начало_поиска) FROM имя_таблицы WHERE условие

Таблицы для примеров

таблица texts
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

Смотрите также

  • функцию POSITION,
    которая осуществляют поиск по строке
  • функцию INSTR,
    которая осуществляют поиск по строке