Ist es möglich, mehrere MySQL-Zeilen in einem Feld zu verketten?
P粉556159786
2023-08-22 14:02:48
<p>Mit <code>MySQL</code> kann ich Folgendes tun: </p>
<pre class="brush:php;toolbar:false;">SELECT hobbies FROM peoples_hobbies WHERE person_id = 5;</pre>
<p><strong>Meine Ausgabe:</strong></p>
<pre class="brush:php;toolbar:false;">einkaufen
Angeln
Codierung</pre>
<p>Aber ich möchte nur eine Zeile und eine Spalte:</p>
<p><strong>Gewünschte Ausgabe: </strong></p>
<pre class="brush:php;toolbar:false;">Einkaufen, Angeln, Programmieren</pre>
<p>Der Grund dafür ist, dass ich mehrere Werte aus mehreren Tabellen auswähle und nach all den Verknüpfungen mehr Zeilen erhalte, als ich möchte. </p>
<p>Ich habe in der MySQL-Dokumentation nach einer Funktion gesucht und es sieht so aus, als würden die Funktionen <code>CONCAT</code> keine Ergebnismenge akzeptieren. </p>
<p>Weiß hier also jemand, wie das geht? </p>
如果你的MySQL版本(4.1)支持,可以查看一下
GROUP_CONCAT
。更多详细信息请参考文档。查询语句如下:
您可以使用
GROUP_CONCAT
函数:正如Ludwig在他的评论中所述,您可以添加
DISTINCT
运算符以避免重复:正如Jan在他们的评论中所述,您还可以在合并之前对值进行排序,使用
ORDER BY
:正如Dag在他的评论中所述,结果有一个1024字节的限制。为了解决这个问题,在您的查询之前运行以下查询:
当然,您可以根据需要更改
2048
的值。计算并分配值的方法如下: