Bagaimana untuk menggabungkan beberapa baris MySQL ke dalam satu medan?
P粉482108310
2023-08-28 11:10:23
<p>Menggunakan <code>MySQL</code>, saya boleh melakukan perkara berikut: </p>
<pre class="brush:php;toolbar:false;">PILIH hobi DARI peoples_hobbies WHERE person_id = 5;</pre>
<p><strong>Output saya: </strong></p>
<pre class="brush:php;toolbar:false;">belanja
memancing
pengekodan</pre>
<p>Tetapi saya hanya mahu 1 baris, 1 lajur: </p>
<p><strong>Keluaran yang dijangkakan: </strong></p>
<pre class="brush:php;toolbar:false;">belanja, memancing, pengekodan</pre>
<p>Sebabnya ialah saya memilih berbilang nilai daripada berbilang jadual dan selepas semua gabungan, saya mendapat lebih banyak baris daripada yang saya mahu. </p>
<p>Saya mencari fungsi pada Dokumen MySQL dan ia tidak kelihatan seperti fungsi <code>CONCAT</code> atau <code>CONCAT_WS</code> </p>
<p>Adakah sesiapa di sini tahu cara melakukannya? </p>
Lihat
GROUP_CONCAT
jika versi MySQL anda (4.1) menyokongnya. Untuk maklumat lanjut, lihat DokumentasiButiran.Ia kelihatan seperti:
Anda boleh menggunakan
GROUP_CONCAT
:Seperti yang disebut oleh Ludwig dalam ulasannya, a> anda boleh menambah pengendali
DISTINCT
DISTINCT untuk mengelakkan pertindihan:Seperti yang Jan sebutkan dalam komen mereka, a> anda juga boleh mengisih nilai sebelum meletup menggunakan
ORDER BY
PESANAN OLEH:Seperti yang Dag nyatakan dalam ulasannya, keputusan mempunyai had 1024 bait. Untuk menyelesaikan isu ini, jalankan pertanyaan ini sebelum:
Sudah tentu, anda boleh menukar
2048
2048 jika anda mahu. Kira dan tetapkan nilai: