JSON 関数

TiDB は、 MySQL 5.7の GA リリースに同梱された JSON関数のほとんどをサポートしています。

JSON 値を作成する関数

関数名説明
JSON_ARRAY([val[, val] ...])(空の可能性がある) 値のリストを評価し、それらの値を含む JSON 配列を返します。
JSON_OBJECT(key, val[, key, val] ...)キーと値のペアの (場合によっては空の) リストを評価し、それらのペアを含む JSON オブジェクトを返します
JSON_QUOTE(string)文字列を引用符付きの JSON 値として返します

JSON 値を検索する関数

関数名説明
JSON_CONTAINS(target, candidate[, path])指定された候補 JSON ドキュメントがターゲット JSON ドキュメント内に含まれているかどうかを 1 または 0 を返すことによって示します
JSON_CONTAINS_PATH(json_doc, one_or_all, path[, path] ...)JSON ドキュメントに特定のパスにデータが含まれているかどうかを示すために、0 または 1 を返します。
JSON_EXTRACT(json_doc, path[, path] ...)pathの引数に一致するドキュメントの部分から選択された JSON ドキュメントからデータを返します
->評価パスの後に JSON 列から値を返します。 JSON_EXTRACT(doc, path_literal)の別名
->>パスを評価し、結果の引用符を外した後、JSON 列から値を返します。 JSON_UNQUOTE(JSON_EXTRACT(doc, path_literal))の別名
JSON_KEYS(json_doc[, path])JSON オブジェクトの最上位の値からキーを JSON 配列として返すか、パス引数が指定されている場合は、選択したパスから最上位のキーを返します
JSON_SEARCH(json_doc, one_or_all, search_string)文字列の 1 つまたはすべての一致について JSON ドキュメントを検索します

JSON 値を変更する関数

関数名説明
JSON_APPEND(json_doc, path, value)JSON_ARRAY_APPENDへのエイリアス
JSON_ARRAY_APPEND(json_doc, path, value)指定されたパスの JSON 配列の末尾に値を追加します
JSON_ARRAY_INSERT(json_doc, path, val[, path, val] ...)json ドキュメントに配列を挿入し、変更されたドキュメントを返します
JSON_INSERT(json_doc, path, val[, path, val] ...)データを JSON ドキュメントに挿入し、結果を返します
JSON_MERGE(json_doc, json_doc[, json_doc] ...)JSON_MERGE_PRESERVEの非推奨のエイリアス
JSON_MERGE_PATCH(json_doc, json_doc[, json_doc] ...)JSON ドキュメントをマージする
JSON_MERGE_PRESERVE(json_doc, json_doc[, json_doc] ...)2 つ以上の JSON ドキュメントをマージし、マージ結果を返します
JSON_REMOVE(json_doc, path[, path] ...)JSON ドキュメントからデータを削除し、結果を返します
JSON_REPLACE(json_doc, path, val[, path, val] ...)JSON ドキュメント内の既存の値を置き換え、結果を返します
JSON_SET(json_doc, path, val[, path, val] ...)JSON ドキュメントにデータを挿入または更新し、結果を返します
JSON_UNQUOTE(json_val)JSON 値の引用符を外し、結果を文字列として返します
JSON_ARRAY_APPEND(json_doc, path, val[, path, val] ...)JSON ドキュメント内の指定された配列の末尾に値を追加し、結果を返します
JSON_ARRAY_INSERT(json_doc, path, val[, path, val] ...)JSON ドキュメントの指定された場所に値を挿入し、結果を返します

JSON 値の属性を返す関数

関数名説明
JSON_DEPTH(json_doc)JSON ドキュメントの最大深度を返します
JSON_LENGTH(json_doc[, path])JSON ドキュメントの長さを返します。パス引数が指定されている場合は、パス内の値の長さを返します
JSON_TYPE(json_val)JSON 値の型を示す文字列を返します
JSON_VALID(json_doc)json_doc が有効な JSON かどうかを確認します。 json 型に変換する前に列をチェックするのに役立ちます。

ユーティリティ機能

関数名説明
JSON_PRETTY(json_doc)JSON ドキュメントの整形
JSON_STORAGE_SIZE(json_doc)json 値を格納するために必要な概算サイズのバイトを返します。サイズは圧縮を使用する TiKV を考慮していないため、この関数の出力は MySQL と厳密には互換性がありません。

集計関数

関数名説明
JSON_ARRAYAGG(key)キーの集約を提供します。
JSON_OBJECTAGG(key, value)特定のキーの値の集計を提供します。

こちらもご覧ください