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