ホームページ >データベース >mysql チュートリアル >MySQL で JSON 配列を行に変換し、GROUP_CONCAT() を使用するにはどうすればよいですか?
MySQL での JSON 配列から行への変換
概要
MySQL での JSON 配列の操作JSON 操作関数を理解する必要があります。ただし、これらの配列を行に変換するとき、または配列に対して GROUP_CONCAT() などの操作を実行するときに問題が発生します。この記事では、このようなシナリオに対処し、MySQL の JSON 機能を使用したソリューションを提供します。
JSON 配列から行へ
JSON 配列の各要素に行を挿入するには、1 つの方法があります。 JSON_EXTRACT() を使用して各要素を手動で抽出し、結果を結合します。ただし、よりクリーンな方法は、MySQL 8 の JSON_TABLE 関数を利用することです。
SET @j = '[1, 2, 3]'; SELECT * FROM JSON_TABLE( @j, "$[*]" COLUMNS( Value INT PATH "$" ) ) data;
これにより、JSON 配列の要素を含む 1 つの列「Value」を持つテーブルが作成されます。
JSON 配列の GROUP_CONCAT()
要素を連結するにはGROUP_CONCAT() を使用して JSON 配列をカンマ区切りの文字列に変換するには、JSON_TABLE と GROUP_CONCAT() を組み合わせて使用できます。
SELECT GROUP_CONCAT(Value) FROM JSON_TABLE( @j, "$[*]" COLUMNS( Value INT PATH "$" ) ) data;
JSON 分割
カンマ区切り文字列の変換など、STRING_SPLIT() と同様のシナリオの場合行に変換するには、文字列を JSON 配列に変換することで JSON_TABLE を利用できます。
set @delimited = 'a,b,c'; SELECT * FROM JSON_TABLE( CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'), "$[*]" COLUMNS( Value varchar(50) PATH "$" ) ) data;
これにより、区切り文字列の要素を含む 1 つの列「Value」を持つテーブルが作成されます。
以上がMySQL で JSON 配列を行に変換し、GROUP_CONCAT() を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。