説明
この関数は、キーと値のペアを表す文字列から、特定のキーに対応する値を抽出します。
説明
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');を実行すると、結果は次のとおりです:+----------------------------------------------------+ | KEYVALUE('name:Li:xiang;age:12', ';', ':', 'name') | +----------------------------------------------------+ | Li:xiang | +----------------------------------------------------+ 1 row in set
構文宣言
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を返します。
例
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;
実行結果は次のとおりです:
+----------------+------------------+------------------+----------+------+------+---------------+
| 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