Чтение онлайн

на главную

Жанры

MySQL 5.0. Библиотека программиста

Гольцман Виктор

Шрифт:

Итак, вы изучили функции, выполняющие операции с датами и временем. В следующем разделе мы рассмотрим некоторые функции, работающие с символьными значениями.

3.5. Символьные функции

Рассмотрим символьные функции, которые вы можете использовать в выражениях.

• BIT_LENGTH(\'<Строка>\').

Функция 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 возвращает числовой код первого символа в строке. Например, функция ORD(CHAR(53402,53632,53643,53435,53438,53426 USING utf8)) возвращает значение 53402.

• CONCAT(\'<Строка 1>\',\'<Строка 2>\',…, \'<Строка N>\').

Функция CONCAT возвращает результат объединения своих аргументов. Например, функция CONCAT(\'ООО “Кускус”\',\'Петров\',\'Крылов\') возвращает значение ООО «Кускус»ПетровКрылов.

• CONCAT_WS(\'Разделитель\',\'<Строка 1>\',\'<Строка 2>\',…,\'<Строка N>\').

Функция CONCAT_WS возвращает результат объединения своих аргументов, при этом первый аргумент используется как разделитель. Например, функция CONCAT_WS(\',\',\'ООО “Кускус”\',\'Петров\',\'Крылов\') возвращает значение ООО «Кускус»,Петров,Крылов.

• REPEAT(\'<Строка>\',\'Количество экземпляров, не менее 1\').

Функция REPEAT(\'<Строка>\',<Количество экземпляров>) возвращает строку, в которую исходная строка входит указанное количество раз. Например, функция REPEAT(\'Трижды\',3) возвращает значение ТриждыТриждыТрижды.

• REVERSE(\'<Строка>\').

Функция REVERSE возвращает строку, в которой символы исходной строки расположены в обратном порядке. Например, функция REVERSE(\'наоборот\') возвращает значение торобоан.

• SPACE(<Количество пробелов>).

Функция SPACE возвращает строку, состоящую из указанного количества пробелов. Например, функция SPACE(1) возвращает значение «.».

• ELT(k,\'<Строка 1>\',\'<Строка 2>\',…, \'<Строка N>\').

Функция ELT возвращает строку с порядковым номером k. Например, функция ELT(2,\'ООО «Кускус»\',\'Петров\',\'Крылов\') возвращает

значение Петров.

• FIELD(\'<Строка-образец>\',\'<Строка 1>\',\'<Строка 2>\',…,\'<Строка N>\').

Функция FIELD возвращает порядковый номер строки, совпадающей с образцом, и 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>\').

Функция MAKE_SET преобразует число в строку: подстрока с порядковым номером k добавляется в строку, если k-й бит равен 1. Биты рассматриваются в обратном порядке, то есть справа налево. Разделителем подстрок служит запятая. Например, функция MAKE_SET(6,\'Я согласен получать новости компании\',\'Я согласен участвовать в опросах\',\'Я согласен участвовать в тестировании продукта\') возвращает значение Я согласен участвовать в опросах, Я согласен участвовать в тестировании продукта, поскольку 6 записывается в двоичной системе счисления как 110.

• INSERT(\'<Строка>\',<Позиция>,<Длина подстроки>,\'<Замещающая подстрока>\').

Функция INSERT возвращает строку, в которой подстрока, начинающаяся с указанной позиции и состоящая из указанного количества символов, заменена заданной подстрокой. Например, функция INSERT(\'ООО “Кускус”\',6,3,\'Кискис\') заменяет подстроку Кус строки ООО «Кускус» подстрокой Кискис и возвращает значение ООО «Кискискус».

• REPLACE(\'<Строка>\',\'<Замещаемая подстрока>\',\'<Замещающая подстрока>\').

Поделиться:
Популярные книги

Бастард Императора

Орлов Андрей Юрьевич
1. Бастард Императора
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Бастард Императора

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Измена. Вторая жена мужа

Караева Алсу
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Вторая жена мужа

Буря империи

Сай Ярослав
6. Медорфенов
Фантастика:
аниме
фэнтези
фантастика: прочее
эпическая фантастика
5.00
рейтинг книги
Буря империи

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

На изломе чувств

Юнина Наталья
Любовные романы:
современные любовные романы
6.83
рейтинг книги
На изломе чувств

Тринадцатый II

NikL
2. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый II

Сирота

Шмаков Алексей Семенович
1. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Сирота

Законы Рода. Том 9

Flow Ascold
9. Граф Берестьев
Фантастика:
городское фэнтези
попаданцы
аниме
дорама
фэнтези
фантастика: прочее
5.00
рейтинг книги
Законы Рода. Том 9

Красноармеец

Поселягин Владимир Геннадьевич
1. Красноармеец
Фантастика:
боевая фантастика
попаданцы
4.60
рейтинг книги
Красноармеец

Огненный князь 4

Машуков Тимур
4. Багряный восход
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 4

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор