Fungsi GROUP_CONCAT dalam SQLite
Artikel ini membincangkan penggunaan dan pelaksanaan fungsi GROUP_CONCAT dalam SQLite untuk mencapai pengumpulan data dan penggabungan.
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
Kepada dapatkan 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 semakan 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 sebagai 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 mula-mula menyediakan subkueri 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 BY klausa, anda boleh mengumpulkan dan menggabungkan nilai dengan 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!