簡體   English   中英

MySQL SELECT語句按ID分組結果?

[英]MySQL SELECT statement that groups results by id?

我正在嘗試創建一個MySQL SELECT語句,它將從表中選擇一堆行,並將結果按行的id分組(多行將具有相同的id)。

這是我正在嘗試做的一個例子。 假設我有下表:

id     |     name  
1      |     Art  
1      |     Arnold  
1      |     Anatoly  
2      |     Beatrice  
2      |     Bertha  
2      |     Betty  
3      |     Constantine  
3      |     Cramer  

我想讓MySQL返回按ID分組的數據,如下所示:

[1] => Art, Arnold, Anatoly
[2] => Beatrice, Bertha, Betty
[3] => Constantine, Cramer

我知道我可以做一個簡單的SQL選擇,然后在PHP中循環結果,但我想讓MySQL盡可能地處理分組。

一種可能的解決方案是使用MySQL的GROUP_CONCAT(expr)函數。

SELECT
  GROUP_CONCAT(name)
FROM
  foo
GROUP BY
  id

但請記住:

結果將截斷為group_concat_max_len系統變量給出的最大長度,該變量的默認值為1024。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM