# Функция 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`,
  которая осуществляют поиск по строке

↑