首页 > 解决方案 > MySQL Concat 查询替代方案

问题描述

我有数据库表:

+----+--------+-----------+
| id |  name  | know_from |
+----+--------+-----------+
|  1 | Andy   |           |
|  2 | Tony   | Andy      |
|  3 | Ben    | Andy      |
|  4 | Miller | Ben       |
|  5 | Bob    | Tony      |
|  6 | Scott  | Andy      |
+----+--------+-----------+

如何有效地查询它并期望结果如下:

+----+--------+-------+------------------+
| id |  name  | total |  reference_list  |
+----+--------+-------+------------------+
|  1 | Andy   |     3 | Tony, Ben, Scott |
|  2 | Tony   |     1 | Bob              |
|  3 | Ben    |     1 | Miller           |
|  4 | Miller |     0 |                  |
|  5 | Bob    |     0 |                  |
|  6 | Scott  |     0 |                  |
+----+--------+-------+------------------+

我有一个解决方案,GROUP_CONCAT( know_from SEPARATOR ',')但服务器仍在使用不支持此语法的 MySQL 5.1 版。任何查询替代方案?提前致谢!

PS)不要告诉我更新版本作为解决方案

标签: mysqlconcat

解决方案


尝试将名称字符串与组 concat 之前的分隔符连接起来

group_concat(concat(name,','))

并从结果字符串中删除最后一个, 。


推荐阅读