在…中 Mysql ……WEIGHT_STRING() 函数返回输入字符串的权重字符串.返回值是一个二进制字符串,代表该字符串的比较和排序值。
如果输入字符串是非二进制值,则返回值包含该字符串的排序权重。如果它是一个二进制值,则结果与输入字符串相同。这是因为二进制字符串中每个字节的权重是字节值。
这个函数是一个内部使用的调试函数.它可以用来测试和调试整理。请注意,它的行为可能会在mysql版本之间发生变化。
WEIGHT_STRING(str [AS {CHAR|BINARY}(N)] [flags])
在哪里str 是输入字符串。可选择的AS 此参数允许您将输入字符串转换为给定的类型和长度。可选择的flags 目前没有在mysql中使用论证(截至8.0版本)。
返回值是一个二进制字符串,表示字符串的比较和排序值,如果参数为 NULL,则返回 NULL。它具有以下属性:
如果 WEIGHT_STRING(str1) = WEIGHT_STRING(str2),则 str1 = str2(认为 str1 和 str2 相等)
如果 WEIGHT_STRING(str1) < WEIGHT_STRING(str2),则 str1 < str2(str1 排在 str2 之前)
WEIGHT_STRING() 是一个供内部使用的调试函数。它的行为可以在 MySQL 版本之间更改,恕不另行通知。它可用于测试和调试排序规则,尤其是在添加新排序规则时。
此列表简要总结了这些论点。更多细节在列表后面的讨论中给出。
输入字符串 str 是一个字符串表达式。如果输入是非二进制(字符)字符串,例如 CHAR、VARCHAR 或 TEXT 值,则返回值包含字符串的排序规则权重。如果输入是二进制(字节)字符串,例如 BINARY、VARBINARY 或 BLOB 值,则返回值与输入相同(二进制字符串中每个字节的权重就是字节值)。如果输入为 NULL,则 WEIGHT_STRING() 返回 NULL。
mysql> SELECT 'AB', HEX('AB'), HEX(WEIGHT_STRING('AB')); +----+-----------+--------------------------+ | AB | HEX('AB') | HEX(WEIGHT_STRING('AB')) | +----+-----------+--------------------------+ | AB | 4142 | 00410042 | +----+-----------+--------------------------+
mysql> SELECT 'ab', HEX('ab'), HEX(WEIGHT_STRING('ab')); +----+-----------+--------------------------+ | ab | HEX('ab') | HEX(WEIGHT_STRING('ab')) | +----+-----------+--------------------------+ | ab | 6162 | 00410042 | +----+-----------+--------------------------+
mysql> SELECT HEX(WEIGHT_STRING('ab' AS CHAR(3))) 'Char 3',HEX(WEIGHT_STRING('ab' AS CHAR(8))) -> 'Char 8',HEX(WEIGHT_STRING('ab' AS BINARY(3))) 'Binary 3',HEX(WEIGHT_STRING('ab' AS BINARY(8))) 'Binary 8'; +--------------+----------------------------------+----------+------------------+ | Char 3 | Char 8 | Binary 3 | Binary 8 | +--------------+----------------------------------+----------+------------------+ | 004100420020 | 00410042002000200020002000200020 | 616200 | 6162000000000000 | +--------------+----------------------------------+----------+------------------+