Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggantikan GROUP_CONCAT MySQL dengan STRING_AGG PostgreSQL?

Bagaimana untuk Menggantikan GROUP_CONCAT MySQL dengan STRING_AGG PostgreSQL?

Patricia Arquette
Patricia Arquetteasal
2025-01-21 09:17:10973semak imbas

How to Replace MySQL's GROUP_CONCAT with PostgreSQL's STRING_AGG?

Berpindah daripada GROUP_CONCAT MySQL ke STRING_AGG PostgreSQL

Fungsi

MySQL 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn