文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 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) 個位元組。