Fungsi GROUP_CONCAT dalam SQLite
Artikel ini membincangkan penggunaan dan pelaksanaan fungsi GROUP_CONCAT dalam SQLite untuk mencapai pengumpulan dan penggabungan data.
Pengenalan
Andaikan anda mempunyai jadual dengan lajur _id dan Nama, dan data disimpan seperti berikut:
1 A 1 B 1 C 1 D 2 E 2 F 3 G 3 H 3 I 3 J 3 K
Untuk mendapatkan hasil yang diingini , di mana setiap _id unik mempunyai senarai gabungan nilai Nama yang berkaitan, seperti yang digambarkan di bawah:
1 A,B,C,D 2 EF
Fungsi GROUP_CONCAT boleh digunakan untuk mencapai ini.
Pelaksanaan
Terdapat isu kecil dalam pertanyaan yang disediakan. Untuk melaksanakan fungsi GROUP_CONCAT dengan betul, anda mesti:
Oleh itu, pertanyaan yang disemak yang akan menghasilkan output yang diingini ialah :
SELECT AI._id, GROUP_CONCAT(Name) AS GroupedName FROM ABSTRACTS_ITEM AI JOIN AUTHORS_ABSTRACT AAB ON AI._id = AAB.ABSTRACTSITEM_ID JOIN ABSTRACT_AUTHOR AAU ON AAU._id = AAB.ABSTRACTAUTHOR_ID GROUP BY AI._id;
Sintaks Alternatif
Sebagai alternatif, anda juga boleh menstrukturkan pertanyaan seperti berikut:
SELECT ID, GROUP_CONCAT(NAME) FROM (select ABSTRACTS_ITEM._id AS ID, Name from ABSTRACTS_ITEM , ABSTRACT_AUTHOR , AUTHORS_ABSTRACT where ABSTRACTS_ITEM._id = AUTHORS_ABSTRACT.ABSTRACTSITEM_ID and ABSTRACT_AUTHOR._id = AUTHORS_ABSTRACT.ABSTRACTAUTHOR_ID) GROUP BY ID;
Sintaks alternatif ini terlebih dahulu menyediakan subquery untuk mengambil data yang diperlukan dan kemudian menggunakan fungsi GROUP_CONCAT pada hasilnya.
Kesimpulan
Dengan menggunakan fungsi GROUP_CONCAT dalam SQLite bersama-sama dengan operasi JOIN dan GROUP MENGIKUT klausa, anda boleh mengumpulkan dan menggabungkan nilai secara berkesan dalam set hasil.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Nilai ke dalam Rentetan Tunggal dalam SQLite Menggunakan GROUP_CONCAT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!