Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggantikan GROUP_CONCAT MySQL dengan STRING_AGG PostgreSQL?
Berpindah daripada GROUP_CONCAT MySQL ke STRING_AGG PostgreSQL
FungsiMySQL GROUP_CONCAT
menggabungkan nilai dengan cekap daripada berbilang baris ke dalam satu rentetan. PostgreSQL menawarkan fungsi STRING_AGG
untuk mencapai hasil yang sama.
Penyelesaian:
Untuk meniru fungsi GROUP_CONCAT
dalam pangkalan data PostgreSQL anda, gunakan fungsi STRING_AGG
dalam pertanyaan anda. Sebagai contoh, jika anda ingin menggabungkan nilai daripada lajur bernama some_column
untuk setiap id
unik, pertanyaan akan kelihatan seperti ini:
<code class="language-sql">SELECT id, STRING_AGG(some_column, ',') FROM the_table GROUP BY id;</code>
Penjelasan Terperinci:
STRING_AGG(some_column, ',')
: Bahagian pertanyaan ini menggabungkan nilai yang terdapat dalam lajur some_column
. ,
menentukan koma sebagai pemisah antara nilai yang digabungkan. Anda boleh menukar pemisah ini kepada mana-mana aksara atau rentetan lain mengikut keperluan.GROUP BY id
: Ini mengumpulkan baris berdasarkan lajur id
. Fungsi STRING_AGG
kemudiannya beroperasi pada setiap kumpulan secara berasingan, menggabungkan nilai hanya dalam kumpulan id
yang sama.Keluaran Jangkaan:
Pertanyaan akan menghasilkan output yang serupa dengan apa yang anda akan dapat dengan MySQL GROUP_CONCAT
:
<code>id | string_agg ------+----------------- TM67 | 4,9,72 TM99 | 2,3</code>
Ini menunjukkan terjemahan langsung dan berkesan keupayaan fungsi MySQL GROUP_CONCAT
ke dalam konteks PostgreSQL menggunakan STRING_AGG
.
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan GROUP_CONCAT MySQL dengan STRING_AGG PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!