В данной статье собраны описания символьных функций MySQL.
Символьные функции MySQL
BIT_LENGTH('<Строка>'). Возвращает длину строки в битах.
Например:
BIT_LENGTH('Крылов') - возвращает значение 48 при использовании однобайтовой кодировки и значение 96 при использовании кодировки UTF-8.
CHAR_LENGTH('<Строка>'), CHARACTER_LENGTH('<Строка>'). Возвращают количество символов в строке.
Например:
CHAR_LENGTH('Крылов') - возвращает значение 6.
LENGTH('<Строка>'), OCTET_LENGTH('<Строка>'). Возвращают длину строки в байтах.
Например:
LENGTH('Крылов') - возвращает значение 6 при использовании однобайтовой кодировки и значение 12 при использовании кодировки UTF-8.
CHAR(<Код 1>,<Код 2>,...,<Код N> [USING <Кодировка>]). Функция CHAR() получает в качестве аргументов коды символов и возвращает строку, состоящую из этих символов. При необходимости можно явно указать кодировку, сопоставляющую коды символам.
Например:
CHAR(53402,53632,53643,53435,53438,53426 USING utf8) - возвращает значение Крылов.
CHAR(138,224,235,171,174,162 USING cp866) - возвращает значение Крылов.
ORD('<Строка>'). Возвращает числовой код первого символа в строке.
Например:
ORD(CHAR(53402,53632,53643,53435,53438,53426 USING utf8)) - возвращает значение 53402.
CONCAT('<Строка 1>','<Строка 2>',..., '<Строка N>'). Возвращает результат объединения своих аргументов.
Например:
CONCAT('Иванов','Петров','Сидоров') - возвращает значение ИвановПетровСидоров.
CONCAT_WS('Разделитель','<Строка 1>','<Строка 2>',...,'<Строка N>'). Возвращает результат объединения своих аргументов, при этом первый аргумент используется как разделитель.
Например:
CONCAT_WS(',','Иванов','Петров','Сидоров') - возвращает значение Иванов,Петров,Сидоров.
REPEAT('<Строка>','Количество экземпляров, не менее 1'). Возвращает строку, в которую исходная строка входит указанное количество раз.
Например:
REPEAT('Три-жды',3) - возвращает значение ТриждыТриждыТрижды.
REVERSE('<Строка>'). Возвращает строку, в которой символы исходной строки расположены в обратном порядке.
Например:
REVERSE('наоборот') - возвращает значение торобоан.
SPACE(<Количество пробелов>). Возвращает строку, состоящую из указанного количества пробелов.
Например:
SPACE(1) возвращает значение «.».
ELT(k,'<Строка 1>','<Строка 2>',..., '<Строка N>'). Возвращает строку с порядковым номером k.
Например:
ELT(2,'Иванов','Петров','Сидоров') - возвращает значение Петров.
FIELD('<Строка-образец>','<Строка 1>','<Строка 2>',...,'<Строка N>'). Возвращает порядковый номер строки, совпадающей с образцом, и 0, если ни одна из строк 1, 2, …, N не совпадает с образцом.
Например:
FIELD('Петров','Иванов', 'Петров', 'Сидоров') - возвращает значение 2.
FIND_IN_SET('<Строка-образец>','<Строка-контейнер>'). Функция FIND_IN_SET() получает в качестве аргумента строку-образец (эта строка не должна содержать запятых) и строку-контейнер вида <Подстрока 1>,<Подстрока2>,...,<Подстрока N> и возвращает порядковый номер подстроки, совпадающей с образцом, и 0, если ни одна из подстрок 1, 2, …,N не совпадает с образцом или строка-контейнер пустая.
Например:
FIND_IN_SET('Петров','Иванов,Петров,Сидоров') - возвращает значение 2.
EXPORT_SET(<Число>,'<Подстрока для бита 1>','<Подстрока для бита 0>'[,'<Разделитель>'[,<Количество бит>]]). Функция EXPORT_SET() преобразует число в строку, заменяя каждый бит (0 или 1) соответствующей подстрокой, и возвращает полученную строку. Биты рассматриваются в обратном порядке, то есть справа налево. При необходимости можно задать разделитель подстрок (если разделитель не задан, используется запятая), а также максимальное количество битов, которые будут обработаны (недостающие биты рассматриваются как нулевые, «лишние» биты игнорируются, а если количество битов не задано, используется значение 64).
Например:
EXPORT_SET(25,'Да','Нет',':',7) - возвращает значение Да:Нет:Нет:Да:Да:Нет:Нет, поскольку 25 записывается в двоичной системе счисления как 11001.
MAKE_SET(<Число>,'<Подстрока 0>','<Подстрока 1>',..., '<Подстрока N>'). Преобразует число в строку: подстрока с порядковым номером k добавляется в строку, если k-й бит равен 1. Биты рассматриваются в обратном порядке, то есть справа налево. Разделителем подстрок служит запятая.
Например:
MAKE_SET(6,'Я согласен получать новости компании','Я согласен участвовать в опросах','Я согласен участвовать в тестировании продукта') - возвращает значение Я согласен участвовать в опросах, Я согласен участвовать в тестировании продукта, поскольку 6 записывается в двоичной системе счисления как 110.
INSERT('<Строка>',<Позиция>,<Длина подстроки>,'<Замещающая подстрока>'). Возвращает строку, в которой подстрока, начинающаяся с указанной позиции и состоящая из указанного количества символов, заменена заданной подстрокой.
Например:
INSERT('ООО “Кускус”',6,3,'Кискис') - заменяет подстроку Кус строки ООО «Кускус» подстрокой Кискис и возвращает значение ООО «Кискискус».
REPLACE('<Строка>','<Замещаемая подстрока>','<Замещающая подстрока>'). Функция REPLACE() возвращает строку, в которой вместо замещаемой подстроки подставлена замещающая.
Например:
REPLACE('Не имей сто рублей, а имей сто друзей','сто','тысячу') - возвращает значение Не имей тысячу рублей, а имей тысячу друзей.
SUBSTR('<Строка>',<Позиция>[,<Длина>]), SUBSTRING('<Строка>',<Позиция>[,<Длина>]), SUBSTR('<Строка>' FROM <Позиция>[ FOR <Длина>]), SUBSTRING('<Строка>' FROM <Позиция>[ FOR <Длина>]). Возвращают подстроку исходной строки, начинающуюся с указанной позиции. При необходимости можно указать длину получаемой подстроки. Если номер позиции меньше 0, то позиция отсчитывается не от начала строки, а от конца.
Например:
SUBSTR('Семь чудес света',6) возвращает значение чудес света;
SUBSTR('Семь чудес света',6,5) возвращает значение чудес;
SUBSTR('Семь чудес света',-5) возвращает значение света.
MID('<Строка>',<Позиция>,<Длина>). Синоним функции SUBSTRING('<Строка>',<Позиция>,<Длина>).
SUBSTRING_INDEX('<Строка>','<Подстрока>',<Порядковый номер вхождения>). Если заданный порядковый номер вхождения больше 0, то функция SUBSTRING_INDEX() находит в исходной строке вхождение указанной подстроки с этим порядковым номером (считая от начала строки) и возвращает часть исходной строки, предшествующую этому вхождению. Если же заданный порядковый номер вхождения меньше 0, то вхождения отсчитываются от конца строки и возвращается часть исходной строки, которая следует за этим вхождением.
Например:
SUBSTRING_INDEX('Семь чудес света',' ',2) - возвращает значение Семь чудес (подстроку, предшествующую второму пробелу), а функция SUBSTRING_INDEX('Семь чудес света',' ',-2) возвращает значение чудес света (подстроку, следующую за вторым пробелом).
LEFT('<Строка>',<Длина подстроки>). Возвращает начальную подстроку исходной строки, состоящую из указанного количества символов.
Например:
LEFT('Генератор',3) - возвращает значение Ген.
RIGHT('<Строка>',<Длина подстроки>). Возвращает подстроку, состоящую из указанного количества последних символов исходной строки.
Например:
RIGHT('Генератор',3) возвращает значение тор.
LOCATE('<Подстрока>','<Строка>'[,<Позиция>]). Возвращает позицию, с которой начинается первое вхождение подстроки в строку, или 0, если строка не содержит такой подстроки. При необходимости можно указать позицию в исходной строке, начиная с которой нужно искать вхождение подстроки.
Например:
LOCATE('сто','Не имей сто рублей, а имей сто друзей') - возвращает значение 9, а функция LOCATE('сто','Не имей сто рублей, а имей сто друзей',20) возвращает значение 28. Регистр символов учитывается только в случае, если хотя бы одна из строк – байтовая (бинарная).
INSTR('<Строка>','<Подстрока>'), POSITION('<Подстрока>' IN'<Строка>'). Синонимы функции LOCATE('<Подстрока>','<Строка>'). Обратите внимание, что порядок аргументов у функций INSTR и LOCATE разный.
LCASE('<Строка>'), LOWER('<Строка>'). Возвращают строку, приведенную к нижнему регистру.
Например:
LCASE('Крылов') - возвращает значение крылов.
UCASE('<Строка>'), UPPER('<Строка>'). Возвращают строку, приведенную к верхнему регистру.
Например:
UCASE('Крылов') - возвращает значение КРЫЛОВ.
LOAD_FILE('<Путь и имя файла>'). Получает в качестве аргумента полный путь и имя файла, расположенного на компьютере, где работает сервер MySQL, и возвращает в виде строки данные, содержащиеся в этом файле. В пути к файлу необходимо использовать прямую косую черту вместо принятой в Windows обратной косой черты.
LPAD('<Строка>',<Длина>,'<Символы заполнения>'). Функция LPAD() возвращает строку указанной длины, полученную из исходной строки путем добавления символов заполнения в начале строки (в случае если количество символов в исходной строке меньше указанного) или отбрасывания «лишних» символов (в случае если количество символов в исходной строке больше указанного).
Например:
LPAD('Крылов',9,'+-') - возвращает значение +–+Крылов, а функция LPAD('ООО “Кускус”',9,'+-') возвращает значение ООО «Куск.
RPAD('<Строка>',<Длина>,'<Символы заполнения>'). Функция RPAD() аналогична функции LPAD(), только символы заполнения добавляются в конце строки.
Например:
RPAD('Крылов',9,'+-') - возвращает значение Крылов+–+, а функция RPAD('ООО “Кускус”',9,'+-') возвращает значение ООО «Куск.
LTRIM('<Строка>'). Возвращает строку, полученную из исходной путем удаления начальных пробелов.
Например:
LTRIM(' Крылов ') - возвращает значение Крылов.
RTRIM('<Строка>'). Возвращает строку, полученную из исходной путем удаления пробелов в конце строки.
Например:
RTRIM(' Крылов ') - возвращает значение Крылов.
TRIM([[LEADING, TRAILING или BOTH] ['<Символы заполнения>']FROM ]'<Строка>'). Возвращает строку, полученную из исходной путем удаления начальных пробелов и пробелов в конце строки. Если необходимо удалить другой символ или последовательность символов, их нужно указать в параметре <Символы заполнения>. Если требуется удалить символы заполнения только в начале строки, укажем параметр LEADING, если только в конце – параметр TRAILING.
Например:
TRIM('+-' FROM'+-+Крылов-+-+-') - возвращает значение +Крылов–.
FORMAT(<Число>,<Количество цифр после запятой>). Округляет число до заданного количества цифр после десятичного разделителя или, наоборот, дополняет число нулями справа до заданного количества цифр после десятичного разделителя, и возвращает это число в виде строки, используя запятую как разделитель тысяч.
Например:
FORMAT(12345.6789,2) возвращает строку 12,345.68.
На этом все. Всем пока.
Компонент комментариев CComment