MySQL WEIGHT_STRING() 函数



MySQL 的 **WEIGHT_STRING()** 函数返回输入字符串的权重。

它接受非二进制字符串作为输入,并返回其权重字符串,该字符串包含排序权重。如果输入字符串是二进制值,则结果与输入字符串相同。这是因为二进制字符串中每个字节的权重都是字节值。

语法

以下是 MySQL WEIGHT_STRING() 函数的语法:

WEIGHT_STRING(str [AS {CHAR|BINARY}(N)] [flags])

参数

此函数接受非二进制字符串值作为参数。

返回值

此函数返回给定字符串的权重。

示例

以下示例使用指定的排序规则 ('utf8mb4_0900_ai_ci') 返回输入字符串 'tutorialspoint' 的权重字符串:

SELECT WEIGHT_STRING(_utf8mb4 'tutorialspoint' COLLATE utf8mb4_0900_ai_ci);

结果是一个二进制字符串,表示输入字符串的比较和排序值,如下所示:

WEIGHT_STRING(_utf8mb4 'tutorialspoint' COLLATE utf8mb4_0900_ai_ci
0x1E951EB51E951DDD1E331D321C471D771E711E0C1DDD1D321DB91E95

如果禁用 **--binary-as-hex** 值,则上述查询的结果如下所示。要显示不可打印的值,可以使用 HEX() 函数:

SELECT HEX(WEIGHT_STRING(_utf8mb4 'tutorialspoint' COLLATE utf8mb4_0900_ai_ci));

获得的结果如下:

HEX(WEIGHT_STRING(_utf8mb4 'tutorialspoint' COLLATE utf8mb4_0900_ai_ci))
1E951EB51E951DDD1E331D321C471D771E711E0C1DDD1D321DB91E95

示例

如果将二进制字符串作为参数传递给此函数,则它将返回相同的二进制字符串:

SELECT WEIGHT_STRING(CAST('test' AS BINARY));

获得的输出如下:

WEIGHT_STRING(CAST('test' AS BINARY))
0x74657374

如果禁用 **--binary-as-hex** 值,则上述查询的结果如下所示。要显示不可打印的值,可以使用 HEX() 函数:

SELECT WEIGHT_STRING(CAST('test' AS BINARY));

产生的结果如下所示:

WEIGHT_STRING(CAST('test' AS BINARY))
test

示例

您还可以使用 CHAR 或 BINARY 来强制转换字符串:

SET NAMES 'latin1';
SELECT HEX(WEIGHT_STRING('tutorialspoint' AS CHAR(4)));

产生的结果如下所示:

HEX(WEIGHT_STRING('tutorialspoint' AS CHAR(4)))
5455544F

示例

如果将 NULL 作为参数传递给此函数,则它将返回相同的 NULL:

SELECT WEIGHT_STRING(NULL);

以下是上述代码的输出:

WEIGHT_STRING(NULL)
0x

如果禁用 **--binary-as-hex** 值,则上述查询的结果如下所示。要显示不可打印的值,可以使用 HEX() 函数:

SELECT WEIGHT_STRING(NULL);

获得的结果如下所示:

WEIGHT_STRING(NULL)
NULL
mysql-weight-string-function.htm
广告