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