Spec-Zone.ru › MariaDB

WEIGHT_STRING

Синтаксис

WEIGHT_STRING(str [AS {CHAR|BINARY}(N)] [LEVEL levels] [flags])
  levels: N [ASC|DESC|REVERSE] [, N [ASC|DESC|REVERSE]] ... 

Описание

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

WEIGHT_STRING() особенно полезен при добавлении новых сортировок, для целей тестирования.

Если str является не двоичной строкой (CHAR, VARCHAR или TEXT), WEIGHT_STRING возвращает вес сортировки строки. Если str является двоичной строкой (BINARY, VARBINARY или BLOB), возвращаемое значение просто совпадает со входным значением, так как вес каждого байта в двоичной строке — это значение байта.

WEIGHT_STRING() возвращает NULL, если входное значение NULL.

Необязательная часть AS позволяет преобразовать входную строку в двоичную или недвоичную строку, а также в строку определенной длины.

AS BINARY(N) измеряет длину в байтах, а не символах, и дополняет справа нулями (0x00) до желаемой длины.

AS CHAR(N) измеряет длину в символах и дополняет справа пробелами до желаемой длины.

N имеет минимальное значение 1, и если оно меньше длины входной строки, строка усекается без предупреждения.

Необязательная часть LEVEL указывает, что возвращаемое значение должно содержать веса для определенных уровней сортировки. Спецификатор levels может быть целым числом, запятой-разделенным списком целых чисел или диапазоном целых чисел, разделенным тире (пробелы игнорируются). Целые числа могут изменяться от 1 до максимального значения 6 (в зависимости от сортировки) и должны быть указаны в порядке возрастания.

Если опущен уровень LEVEL, по умолчанию предполагается от 1 до максимального значения для сортировки.

Если уровень LEVEL указан без использования диапазона, разрешен необязательный модификатор.

ASC, по умолчанию, возвращает веса без каких-либо изменений.

DESC возвращает веса с инверсией по битам.

REVERSE возвращает веса в обратном порядке.

Примеры

В примерах ниже используется функция HEX() для представления непечатаемых результатов в шестнадцатеричном формате.

SELECT HEX(WEIGHT_STRING('x'));
+-------------------------+
| HEX(WEIGHT_STRING('x')) |
+-------------------------+
| 0058                    |
+-------------------------+

SELECT HEX(WEIGHT_STRING('x' AS BINARY(4)));
+--------------------------------------+
| HEX(WEIGHT_STRING('x' AS BINARY(4))) |
+--------------------------------------+
| 78000000                             |
+--------------------------------------+

SELECT HEX(WEIGHT_STRING('x' AS CHAR(4)));
+------------------------------------+
| HEX(WEIGHT_STRING('x' AS CHAR(4))) |
+------------------------------------+
| 0058002000200020                   |
+------------------------------------+

SELECT HEX(WEIGHT_STRING(0xaa22ee LEVEL 1));
+--------------------------------------+
| HEX(WEIGHT_STRING(0xaa22ee LEVEL 1)) |
+--------------------------------------+
| AA22EE                               |
+--------------------------------------+

SELECT HEX(WEIGHT_STRING(0xaa22ee LEVEL 1 DESC));
+-------------------------------------------+
| HEX(WEIGHT_STRING(0xaa22ee LEVEL 1 DESC)) |
+-------------------------------------------+
| 55DD11                                    |
+-------------------------------------------+

SELECT HEX(WEIGHT_STRING(0xaa22ee LEVEL 1 REVERSE));
+----------------------------------------------+
| HEX(WEIGHT_STRING(0xaa22ee LEVEL 1 REVERSE)) |
+----------------------------------------------+
| EE22AA                                       |
+----------------------------------------------+
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/weight_string/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API