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

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

Mary-Kate Olsen
リリース: 2024-11-26 02:54:09
オリジナル
357 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート