Mysql поиск подстроки в строке

Функции для работы со строками

Для работы со строка в MySQL определен ряд встроенных функций:

CONCAT : объединяет строки. В качестве параметра принимает от 2-х и более строк, которые надо соединить:

При этом в функцию можно передавать не только непосредственно строки, но и числа, даты — они будут преобразовываться в строки и также объединяться.

CONCAT_WS : также объединяет строки, но в качестве первого параметра принимает разделитель, который будет соединять строки:

LENGTH : возвращает количество символов в строке. В качестве параметра в функцию передается строка, для которой надо найти длину:

LTRIM : удаляет начальные пробелы из строки. В качестве параметра принимает строку:

RTRIM : удаляет конечные пробелы из строки. В качестве параметра принимает строку:

TRIM : удаляет начальные и конечные пробелы из строки. В качестве параметра принимает строку:

С помощью дополнительного оператора можно задать где имеено удалить пробелы: BOTH (в начале и в конце), TRAILING (только в конце), LEADING (только в начале):

LOCATE(find, search [, start]) : возвращает позицию первого вхождения подстроки find в строку search. Дополнительный параметр start позволяет установить позицию в строке search, с которой начинается поиск подстроки find. Если подстрока search не найдена, то возвращается 0:

LEFT : вырезает с начала строки определенное количество символов. Первый параметр функции — строка, а второй — количество символов, которые надо вырезать сначала строки:

RIGHT : вырезает с конца строки определенное количество символов. Первый параметр функции — строка, а второй — количество символов, которые надо вырезать сначала строки:

SUBSTRING(str, start [, length]) : вырезает из строки str подстроку, начиная с позиции start. Третий необязательный параметр передает количество вырезаемых символов:

SUBSTRING_INDEX(str, delimiter, count) : вырезает из строки str подстроку. Параметр delimiter определяет разделитель внутри строки. А параметр count определяет, до какого вхождения разделителя надо вырезать подстроку. Если count положительный, то подстрока вырезается с начала, если count отрицательный, то с конца строки str:

Читайте также:  Прошивка megafon mr150 3

REPLACE(search, find, replace) : заменяет в строке find подстроку search на подстроку replace. Первый параметр функции — строка, второй — подстрока, которую надо заменить, а третий — подстрока, на которую надо заменить:

INSERT(str, start, length, insert) : вставляет в строку str, заменяя length символов с позиции start подстрокой insert. Первый параметр функции — строка, второй — позиция, с которой надо заменить, третий — сколько символов с позиции start надо заменить вставляемой подстрокой, четвертый параметр — вставляемая подстрока:

REVERSE : переворачивает строку наоборот:

LOWER : переводит строку в нижний регистр:

UPPER : переводит строку в верхний регистр

SPACE : возвращает строку, которая содержит определенное количество пробелов

REPEATE(str, count) : возвращает строку, которая содержит определенное количество повторов подстроки str. Количество повторов задается через параметр count.

LPAD(str, length, pad) : добавляет слева от строки str некоторое количество символов, которые определены в параметре pad. Количество добавляемых символов вычисляется по формуле length — LENGTH(str) . Если параметр length меньше длины строки str, то эта строка усекается до length символов.

RPAD(str, length, pad) : добавляет справа от строки str некоторое количество символов, которые определены в параметре pad. Количество добавляемых символов вычисляется по формуле length — LENGTH(str) . Если параметр length меньше длины строки str, то эта строка усекается до length символов.

Например, возьмем таблицу:

И при извлечении данных применим строковые функции:

Для поиска подстроки в SQL существует функция LOCATE. Она позволяет найти подстроку в определённом поле таблицы, для того чтобы сделать что-то с записью, содержащей эту подстроку. Запрос с данной функцией может выглядеть так:

SELECT * FROM таблица WHERE LOCATE(подстрока, поле)

Для примера получим все записи из таблицы users , в которых поле inform содержит подстроку "скрипт" и выведем записи на экран:

Читайте также:  Docker apache php mysql

Функцию LOCATE можно использовать не только для выборки но и для других запросов, в которых указываются условия.

Для более сложного поиска подстроки применяется ключевое слово LIKE. Оно позволяет написать шаблон, по которому производится поиск в определённом поле таблицы. Запрос выглядит приблизительно так:

SELECT * FROM таблица WHERE поле LIKE шаблон

В шаблоне кроме текта используются такие символы:

_ — один любой сммвол

% — любое количество символов

Коприрование материалов сайта возможно только с согласия администрации

Как с помощью Mysql сделать поиск по вхождению в строке?

Вот есть пример, надо найти по полю [STR] вхождение "A":

2 ответа 2

Не очень понятно представление таблицы, если N и STR — это столбцы таблицы, то достаточно, как указано в комментариях, воспользоваться оператором LIKE

Если же [0] [N]"TABL",[STR]"A,B,C" и [1] [N]"CATL",[STR]"B,C" это строки по которым осуществляется поиск, то лучше воспользоваться регулярными выражениями, т.е. оператором RLIKE

Извини, помог человек из комментариев, раз он не пишет то напишу я.

Оцените статью
Добавить комментарий

Adblock
detector