---
title: "KEYVALUE - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: KEYVALUE 描述 该函数用于从键值对字符串中提取特定键对应的值。 说明 对于 OceanBase 数据库 V4.3.5 版本，该函数从 V4.3.5 BP1 版本开始支持。 注意事项 不允许指定 delimiter_1 和 delimiter_2 为相同字符串。 若 delimiter_1 分割得到的字符串中包…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.5 LTS

# KEYVALUE

更新时间：2026-07-15 20:42:45

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.5/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/400.functions-of-mysql-mode/200.single-row-functions-of-mysql-mode/200.string-functions-of-mysql-mode/3750.keyvalue-of-mysql-mode.md)  

## 描述

该函数用于从键值对字符串中提取特定键对应的值。

#### 说明

对于 OceanBase 数据库 V4.3.5 版本，该函数从 V4.3.5 BP1 版本开始支持。

## 注意事项

- 不允许指定 `delimiter_1` 和 `delimiter_2` 为相同字符串。
 - 若 `delimiter_1` 分割得到的字符串中包含多个 `delimiter_2`，则使用第一个 `delimiter_2` 作为分割符得到对应的 Key 和 Value。例如，执行 `SELECT KEYVALUE('name:Li:xiang;age:12', ';', ':', 'name');` 返回结果如下：

  ```shell
  +----------------------------------------------------+
  | KEYVALUE('name:Li:xiang;age:12', ';', ':', 'name') |
  +----------------------------------------------------+
  | Li:xiang                                           |
  +----------------------------------------------------+
  1 row in set

  ```

## 语法声明

```sql
KEYVALUE(str, [delimiter_1, delimiter_2,] key)

```

## 参数解释

- `str`: 表示包含多个键值对的字符串。支持类型：`VARCHAR`、`TINYTEXT`、`TEXT`、`LONGTEXT`、`NULL` 等，不支持 `JSON`。
 - `delimiter_1, delimiter_2,`：可选项，表示分隔符。具体如下：

     - `delimiter_1`：表示键值对分隔符，默认为 `;`。支持类型：`VARCHAR`、`NULL`。
     - `delimiter_2`：表示键值分隔符，默认为 `:`。支持类型：`VARCHAR`、`NULL`。
 - `key`: 表示要查找的键（`key`）。支持类型：`VARCHAR`、`NULL`。即将 `str` 按照 `delimiter_1` 和 `delimiter_2` 拆分后，返回 `key` 值对应的 `value`。

## 返回类型

- 当表达式任意参数为 `NULL` 时，返回结果为 `NULL`。
 - 如果未找到对应的键，函数将返回 `NULL`。
 - 如果有多个键值对匹配，返回第一个匹配上的 `key` 对应的 `value`。

## 示例

```sql
SELECT
    KEYVALUE(NULL, ',', '=', 'b') AS key_value_null,
    KEYVALUE('a=1,b=2,c=3', NULL, '=', 'b') AS delimiter_1_null,
    KEYVALUE('a=1,b=2,c=3', ',', NULL, 'b') AS delimiter_2_null,
    KEYVALUE('a=1,b=2,c=3', ',', '=', NULL) AS key_null,
    KEYVALUE('a=1,b=2,c=3', ',', '=', 'b') AS b,
    KEYVALUE('a=1,b=2,c=3,b=4', ',', '=', 'b') AS bs,
    KEYVALUE('a:1;b:2;c:3', 'b') split_default;

```

返回结果如下：

```shell
+----------------+------------------+------------------+----------+------+------+---------------+
| key_value_null | delimiter_1_null | delimiter_2_null | key_null | b    | bs   | split_default |
+----------------+------------------+------------------+----------+------+------+---------------+
| NULL           | NULL             | NULL             | NULL     | 2    | 2    | 2             |
+----------------+------------------+------------------+----------+------+------+---------------+
1 row in set

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
