【发布时间】:2019-07-22 04:17:44
【问题描述】:
我有数据库表:
+----+--------+-----------+
| 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 版。任何查询替代方案?提前致谢!
P.S.)不要告诉我更新版本作为解决方案
【问题讨论】:
-
您可能希望发布整个查询解决方案,以便更清楚地了解问题出在哪里
-
据我所知,MySQL 5.1。 does 支持该语法。除非你包括逗号。然后 AFAIK no 版本支持它。即
GROUP_CONCAT(name SEPARATOR ',')应该可以工作,GROUP_CONCAT(name, SEPARATOR ',')不可能。 -
谢谢,我认为 5.1 不适用于 SEPARATOR
-
文档说有。再说一次,我无法测试它——我当然不会安装 5.1。 :P