Общие задачи и решения к ним
MySQL | Функции для работы со строками
- Подробности
- Категория: Общие задачи и решения к ним
- Обновлено 16.02.2024
-
CONCAT: объединяет строки. В качестве параметра принимает от 2-х и более строк, которые надо соединить:
1SELECTCONCAT('Tom',' ','Smith')-- Tom SmithПри этом в функцию можно передавать не только непосредственно строки, но и числа, даты - они будут преобразовываться в строки и также объединяться.
-
CONCAT_WS: также объединяет строки, но в качестве первого параметра принимает разделитель, который будет соединять строки:
1SELECTCONCAT_WS(' ','Tom','Smith','Age:', 34)-- Tom Smith Age: 34 -
LENGTH: возвращает количество символов в строке. В качестве параметра в функцию передается строка, для которой надо найти длину:
1SELECTLENGTH('Tom Smith')-- 9 -
LTRIM: удаляет начальные пробелы из строки. В качестве параметра принимает строку:
1SELECTLTRIM(' Apple') -
RTRIM: удаляет конечные пробелы из строки. В качестве параметра принимает строку:
1SELECTRTRIM(' Apple ') -
TRIM: удаляет начальные и конечные пробелы из строки. В качестве параметра принимает строку:
1SELECTTRIM(' Tom Smith ')С помощью дополнительного оператора можно задать где имеено удалить пробелы:
BOTH(в начале и в конце),TRAILING(только в конце),LEADING(только в начале):1SELECTTRIM(BOTHFROM' Tom Smith ') -
LOCATE(find, search [, start]): возвращает позицию первого вхождения подстроки find в строку search. Дополнительный параметр start позволяет установить позицию в строке search, с которой начинается поиск подстроки find. Если подстрока search не найдена, то возвращается 0:
1234SELECTLOCATE('om','Tom Smith');-- 2SELECTLOCATE('m','Tom Smith');-- 3SELECTLOCATE('m','Tom Smith', 4);-- 6SELECTLOCATE('mig','Tom Smith');-- 0 -
LEFT: вырезает с начала строки определенное количество символов. Первый параметр функции - строка, а второй - количество символов, которые надо вырезать с начала строки:
1SELECTLEFT('Apple', 3)-- App -
RIGHT: вырезает с конца строки определенное количество символов. Первый параметр функции - строка, а второй - количество символов, которые надо вырезать с конца строки:
1SELECTRIGHT('Apple', 3)-- ple -
SUBSTRING(str, start [, length]): вырезает из строки str подстроку, начиная с позиции start. Третий необязательный параметр передает количество вырезаемых символов:
12SELECTSUBSTRING('Galaxy S8 Plus', 8),-- S8 Plus(SELECTSUBSTRING('Galaxy S8 Plus', 8, 2) );-- S8 -
SUBSTRING_INDEX(str, delimiter, count): вырезает из строки str подстроку. Параметр delimiter определяет разделитель внутри строки. А параметр count определяет, до какого вхождения разделителя надо вырезать подстроку. Если count положительный, то подстрока вырезается с начала, если count отрицательный, то с конца строки str:
123SELECTSUBSTRING_INDEX('Galaxy S8 Plus',' ', 1),-- Galaxy(SELECTSUBSTRING_INDEX('Galaxy S8 Plus',' ', 2) ),-- Galaxy S8(SELECTSUBSTRING_INDEX('Galaxy S8 Plus',' ', -2) );-- S8 Plus -
REPLACE(search, find, replace): заменяет в строке search подстроку find на подстроку replace. Первый параметр функции - строка, второй - подстрока, которую надо заменить, а третий - подстрока, на которую надо заменить:
1SELECTREPLACE('Galaxy S8 Plus','S8 Plus','Note 8')-- Galaxy Note 8 -
INSERT(str, start, length, insert): вставляет в строку str, заменяя length символов с позиции start подстрокой insert. Первый параметр функции - строка, второй - позиция, с которой надо заменить, третий - сколько символов с позиции start надо заменить вставляемой подстрокой, четвертый параметр - вставляемая подстрока:
1SELECTINSERT('Galaxy S9', 8, 3,'Note 9');-- Galaxy Note 9 -
REVERSE: переворачивает строку наоборот:
1SELECTREVERSE('123456789')-- 987654321 -
LOWER: переводит строку в нижний регистр:
1SELECTLOWER('Apple')-- apple -
UPPER: переводит строку в верхний регистр
1SELECTUPPER('Apple')-- APPLE -
SPACE: возвращает строку, которая содержит определенное количество пробелов
-
REPEATE(str, count): возвращает строку, которая содержит определенное количество повторов подстроки str. Количество повторов задается через параметр count.
1SELECTREPEAT('ab', 5);-- ababababab -
LPAD(str, length, pad): добавляет слева от строки str некоторое количество символов, которые определены в параметре pad. Количество добавляемых символов вычисляется по формуле
length - LENGTH(str). Если параметр length меньше длины строки str, то эта строка усекается до length символов.1SELECTLPAD('Tom Smith', 13,'*');-- ****Tom Smith -
RPAD(str, length, pad): добавляет справа от строки str некоторое количество символов, которые определены в параметре pad. Количество добавляемых символов вычисляется по формуле
length - LENGTH(str). Если параметр length меньше длины строки str, то эта строка усекается до length символов.1SELECTRPAD('Tom Smith', 13,'*');-- Tom Smith****

