Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menukar Tatasusunan JSON kepada Baris dan Gunakan GROUP_CONCAT() dalam MySQL?
Penukaran JSON Array ke Rows dalam MySQL
Pengenalan
Bekerja dengan tatasusunan JSON dalam MySQL memerlukan pemahaman tentang fungsi manipulasi JSONnya. Walau bagaimanapun, cabaran timbul apabila menukar tatasusunan ini kepada baris atau melaksanakan operasi seperti GROUP_CONCAT() padanya. Artikel ini menangani senario sedemikian dan menyediakan penyelesaian menggunakan fungsi JSON MySQL.
Dari JSON Array ke Rows
Untuk memasukkan baris bagi setiap elemen dalam tatasusunan JSON, satu pendekatan adalah untuk mengekstrak setiap elemen secara manual menggunakan JSON_EXTRACT() dan menggabungkan hasilnya bersama-sama. Walau bagaimanapun, kaedah yang lebih bersih ialah menggunakan fungsi JSON_TABLE MySQL 8:
SET @j = '[1, 2, 3]'; SELECT * FROM JSON_TABLE( @j, "$[*]" COLUMNS( Value INT PATH "$" ) ) data;
Ini akan mencipta jadual dengan satu lajur, "Nilai," yang mengandungi elemen tatasusunan JSON.
GROUP_CONCAT() pada JSON Array
Untuk menggabungkan unsur-unsur Tatasusunan JSON ke dalam rentetan yang dipisahkan koma menggunakan GROUP_CONCAT(), anda boleh menggunakan gabungan JSON_TABLE dan GROUP_CONCAT():
SELECT GROUP_CONCAT(Value) FROM JSON_TABLE( @j, "$[*]" COLUMNS( Value INT PATH "$" ) ) data;
JSON Splitting
Untuk senario serupa dengan STRING_SPLIT(), seperti menukar rentetan yang dipisahkan koma menjadi baris, anda boleh memanfaatkan JSON_TABLE dengan menukar rentetan kepada tatasusunan JSON:
set @delimited = 'a,b,c'; SELECT * FROM JSON_TABLE( CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'), "$[*]" COLUMNS( Value varchar(50) PATH "$" ) ) data;
Ini akan membuat jadual dengan satu lajur, "Nilai," yang mengandungi unsur rentetan yang dibataskan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Tatasusunan JSON kepada Baris dan Gunakan GROUP_CONCAT() dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!