Функция LOCATE() в SQL
Функция LOCATE() выполняет поиск подстроки (указанного текста) в строке, а затем возвращает позицию её первого символа. В отличие от функции POSITION(), функция LOCATE() может выполнить поиск не с начала строки, а с указанного места.
Обратите внимание, что нумерация символов начинается с 1.
Синтаксис функции LOCATE()
-- 1 вариант SELECT LOCATE(что_ищем, поле_таблицы) FROM имя_таблицы WHERE условие_для_выборки; -- 2 вариант SELECT LOCATE(что_ищем, поле_таблицы, позиция_начала_поиска) FROM имя_таблицы WHERE условие_для_выборки;
Практический пример
Выполнить поиск слова lorem с 31 символа по полю description таблицы text.
Исходная таблица: text
Выполняем SQL-запрос.
SELECT *, LOCATE('Lorem', description, 31) as locate_lorem FROM text
После выполнения запроса, будет выведена результирующая таблица с дополнительным столбцом locate_lorem, в котором будут указаны позиции первого символа подстроки. То что в колонке locate_lorem отображаются нули, значит, что в строке не найдено ни одного совпадения с 31 символа.
Результирующая таблица
Метки: LOCATE, SQL, Поиск по строкам.