ホームページ >データベース >mysql チュートリアル >MySQL で JSON 配列を行に変換するにはどうすればよいですか?

MySQL で JSON 配列を行に変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-26 02:54:09431ブラウズ

How to Convert a JSON Array into Rows in MySQL?

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

JSON 配列を MySQL テーブル内の個々の行に変換するのは難しい場合があります。ただし、この操作は、次のようなさまざまな手法を使用して実現できます。

方法 1: JSON_EXTRACT と Union

この方法では、JSON_EXTRACT 関数を使用して個々の配列要素を抽出します。 UNION 演算子を使用してそれらを結合します。以下に例を示します。

SET @j = '[1, 2, 3]';

SELECT JSON_EXTRACT(@j, '$[0]') AS value
UNION
SELECT JSON_EXTRACT(@j, '$[1]') AS value
UNION
SELECT JSON_EXTRACT(@j, '$[2]') AS value;

方法 2: JSON_TABLE (MySQL 8 )

MySQL 8 では JSON_TABLE 関数が導入されており、これにより、以下に基づいて仮想テーブルを作成できます。 JSON ドキュメント。これにより、JSON 配列を行に変換する簡単な方法が提供されます。以下に例を示します。

SET @j = '[5, 6, 7]';

SELECT *
FROM JSON_TABLE(
  @j,
  "$[*]"
  COLUMNS(
    Value INT PATH "$"
  )
) data;

方法 3: 文字列分割と JSON_TABLE

この手法は、MySQL には組み込みの文字列分割関数がないという事実を利用します。区切り文字で区切られた文字列を JSON 文字列に変換すると、JSON_TABLE を使用して分割機能を実現できます。

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

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

これらのメソッドは、JSON 配列を MySQL の個々の行に変換するための多用途のソリューションを提供します。 MySQL 5.7 ではより複雑なアプローチが必要になる場合がありますが、MySQL 8 では JSON_TABLE などのより効率的なオプションが導入され、データ操作の新たな可能性が開かれています。

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

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