ホームページ >データベース >mysql チュートリアル >MySQL の JSON_TABLE 関数はどのようにして JSON 配列を行に変換できますか?

MySQL の JSON_TABLE 関数はどのようにして JSON 配列を行に変換できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-29 05:37:17769ブラウズ

How Can MySQL's JSON_TABLE Function Convert JSON Arrays into Rows?

MySQL で JSON 配列を行に変換する

MySQL 5.7 以前のバージョンでは、特に JSON 配列を行に変換する場合、JSON の操作が困難になることがあります。行。ただし、MySQL 8 では、新しい JSON_TABLE 関数が簡単な解決策を提供します。

JSON_TABLE 関数

JSON_TABLE 関数を使用すると、JSON ドキュメントからデータを簡単に抽出してマップできます。それをリレーショナルテーブルスキーマに変換します。 JSON 配列を行に変換するには、次の構文を使用します:

SELECT *
FROM JSON_TABLE(
  <json_array>,
  "$[*]"
  COLUMNS(
    <column_name> <data_type> PATH "$"
  )
) <table_alias>;

JSON 配列を考えます:

[5, 6, 7]

を使用してテーブルに変換できますJSON_TABLE:

SELECT *
FROM JSON_TABLE(
  '[5, 6, 7]',
  "$[*]"
  COLUMNS(
    Value INT PATH "$"
  )
) data;

出力は次のようになります:

| Value |
|---|---|
| 5 |
| 6 |
| 7 |

一般的な文字列分割

MySQL にはネイティブの文字列分割関数がありません。ただし、JSON_TABLE を使用して同様の結果を得ることができます。

set @delimited = 'a,b,c';

SELECT *
FROM JSON_TABLE(
  CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'),
  "$[*]"
  COLUMNS(
    Value varchar(50) PATH "$"
  )
) data;

これにより、区切り文字で区切られた文字列が JSON 配列に分割され、テーブルに変換されます。

以上がMySQL の JSON_TABLE 関数はどのようにして JSON 配列を行に変換できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。