group_concat()會計算哪些行屬於同一組,將屬於同一組的列顯示出來。要返回哪些列,由函
數參數(就是字段名)決定。分組必須有個標准,就是根據group by指定的列進行分組。
group_concat函數應該是在內部執行了group by語句,這是我的猜測。
1.測試語句:
代碼如下 復制代碼 SELECT group_concat(town) FROM `players` group by town結果去查找town中去查找哪些值是一樣的,如果相等,就全部列出來,以逗號分割進行列出,如下:
group_concat(town)
北京,北京
長沙
簡單的例子:
mysql> SELECT * FROM `ta`;
+----+------+
| id | name |
+----+------+
| 1 | a |
| 1 | b |
| 1 | c |
| 1 | d |
| 2 | a |
| 2 | b |
| 2 | c |
| 3 | d |
+----+------+
8 rows in set (0.00 sec)
mysql> SELECT `id`,
-> GROUP_CONCAT(`name`)
-> FROM `ta`
-> GROUP BY `id`;
+----+----------------------+
| id | GROUP_CONCAT(`name`) |
+----+----------------------+
| 1 | a c b d |
| 2 | a c b |
| 3 | d |
+----+----------------------+
3 rows in set (0.03 sec)