【问题标题】:Select all possible column values where column value equals a value [duplicate]选择所有可能的列值,其中列值等于一个值[重复]
【发布时间】:2020-02-29 09:23:45
【问题描述】:

我有一张像这样的表:

+----+----------+------------+
| id |  server  |    name    |
+----+----------+------------+
|  1 |  server1 | PlayerOne  |
|  2 |  server2 | PlayerOne  |
|  3 |  server1 | PlayerTwo  |
|  4 |  server1 | PlayerFour |
+----+----------+------------+

我的目标是选择具有这样的数据:

+-----------+------------------+
|   name    |     serverList   |
+-----------+------------------+
| PlayerOne | server1, server2 |
+-----------+------------------+

我尝试SELECT server,name AS result 但没有结果..

感谢任何可以帮助我的人。

【问题讨论】:

  • 为什么只有玩家一出现在输出中?
  • 这是一个错误。所有玩家都应该出现在各自的服务器上。谢谢。

标签: mysql


【解决方案1】:

如果你使用mysql v8.0,你可以使用group_concat()函数

select name, group_concat(server, ',') as serverlist from tableA
group by name

【讨论】:

  • GROUP_CONCAT 早在 v8 之前就存在于 MySQL 中
  • 感谢您的回答。我将DISTINCT 添加到服务器的GROUP_CONCAT 中,以删除重复项。 +1
猜你喜欢
  • 2017-08-12
  • 2021-06-10
  • 2016-07-12
  • 2016-07-22
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2014-02-16
相关资源
最近更新 更多