文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  函数和运算符  /  向量函数

14.21 向量函数

MySQL 9.0 支持 SQL 函数来处理 VECTOR 值。本节介绍这些函数。

表 14.31 向量函数

名称 描述
STRING_TO_VECTOR() 获取由符合字符串表示的 VECTOR 列的二进制值
VECTOR_DIM() 获取向量的长度(即它包含的条目数)
VECTOR_TO_STRING() 获取 VECTOR 列的字符串表示形式,给定其值作为二进制字符串

  • STRING_TO_VECTOR(string)

    将向量的字符串表示形式转换为二进制表示形式。字符串的预期格式由一个或多个用逗号分隔的浮点值组成,并用方括号 ([ ]) 括起来。值可以使用十进制或科学计数法表示。由于参数是字符串,因此必须用引号括起来。

    TO_VECTOR() 是此函数的同义词。

    示例

    mysql> SELECT STRING_TO_VECTOR("[1.05, -17.8, 32]");
    +---------------------------------------+
    | STRING_TO_VECTOR("[1.05, -17.8, 32]") |
    +---------------------------------------+
    | 0x6666863F66668EC100000042            |
    +---------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT TO_VECTOR("[1.05, -17.8, 32, 123.456]");
    +-----------------------------------------+
    | TO_VECTOR("[1.05, -17.8, 32, 123.456]") |
    +-----------------------------------------+
    | 0x6666863F66668EC10000004279E9F642      |
    +-----------------------------------------+
    1 row in set (0.00 sec)

    VECTOR_TO_STRING() 是此函数的逆函数

    mysql> SELECT VECTOR_TO_STRING(STRING_TO_VECTOR("[1.05, -17.8, 32]"));
    +---------------------------------------------------------+
    | VECTOR_TO_STRING(STRING_TO_VECTOR("[1.05, -17.8, 32]")) |
    +---------------------------------------------------------+
    | [1.05000e+00,-1.78000e+01,3.20000e+01]                  |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)
  • VECTOR_DIM(vector)

    给定一个 VECTOR 列值,此函数返回向量包含的条目数。

    示例

    mysql> SELECT VECTOR_DIM(0x0040004000800080);
    +--------------------------------+
    | VECTOR_DIM(0x0040004000800080) |
    +--------------------------------+
    |                              2 |
    +--------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT VECTOR_DIM(TO_VECTOR('[2, 3, 5]') );
    +-------------------------------------+
    | VECTOR_DIM(TO_VECTOR('[2, 3, 5]') ) |
    +-------------------------------------+
    |                                   3 |
    +-------------------------------------+
    1 row in set (0.00 sec)

    无法作为向量值解析的此函数参数会导致错误。

  • VECTOR_TO_STRING(vector)

    给定 VECTOR 列值的二进制表示形式,此函数返回其字符串表示形式,该字符串格式与 STRING_TO_VECTOR() 函数参数的描述相同。

    FROM_VECTOR() 作为此函数的同义词被接受。

    示例

    mysql> SELECT VECTOR_TO_STRING(0x00000040000040400000A0400000E040);
    +------------------------------------------------------+
    | VECTOR_TO_STRING(0x00000040000040400000A0400000E040) |
    +------------------------------------------------------+
    | [2.00000e+00,3.00000e+00,5.00000e+00,7.00000e+00]    |
    +------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT FROM_VECTOR(0x00000040000040400000A040);
    +-----------------------------------------+
    | FROM_VECTOR(0x00000040000040400000A040) |
    +-----------------------------------------+
    | [2.00000e+00,3.00000e+00,5.00000e+00]   |
    +-----------------------------------------+
    1 row in set (0.00 sec)

    无法作为向量值解析的此函数参数会导致错误。

    此函数的输出最大大小为 262128 (16 * 16383) 字节。