POSITION, LOCATE, INSTR - поиск подстроки в строке
POSITION
Функция POSITION
осуществляет поиск подстроки в строке, возвращает позицию ее первого символа. Учтите,
что нумерация символов начинается с 1.
SELECT POSITION(что_ищем IN поле) FROM `имя_таблицы`;
В данном примере в тексте ищется позиция слова 'длинный':
SELECT *, POSITION('длинный' IN text) as pos FROM `texts`;
LOCATE
Функция LOCATE
осуществляет поиск подстроки в строке, возвращает позицию ее первого символа. Учтите, что нумерация
символов начинается с 1.
В отличие от функции POSITION
функция LOCATE
может начинать поиск не с начала строки, а с определенного места.
SELECT LOCATE(что_ищем, поле) FROM `имя_таблицы`; -- возможно применение операторов
SELECT LOCATE(что_ищем, поле, начало_поиска) FROM `имя_таблицы`; -- возможно применение операторов
В данном примере в тексте ищется позиция слова 'длинный':
SELECT *, LOCATE('длинный', text) as pos FROM `texts`;
В данном примере в тексте ищется позиция слова 'длинный', поиск начинается с 8-го символа строки:
SELECT *, LOCATE('длинный', text, 8) as pos FROM `texts`;
INSTR
Функция INSTR
осуществляет поиск подстроки в строке, возвращает позицию ее первого символа. Учтите, что нумерация
символов начинается с 1.
В отличие от функции POSITION
функция INSTR
имеет обратный порядок параметров.
SELECT INSTR(поле, что_ищем) FROM `имя_таблицы`; -- возможно применение операторов
В данном примере в тексте ищется позиция слова 'длинный':
SELECT *, INSTR(text, 'длинный') as pos FROM `texts`;