【问题标题】:How to combine rows with same ID but different values in certain columns in mysql如何在mysql中的某些列中组合具有相同ID但不同值的行
【发布时间】:2021-04-12 04:49:17
【问题描述】:
id name age gender hobby
1 Max 20 Male Skating
1 Max 20 Male Running
1 Max 20 Male Jogging
2 Tom 24 Male Skating
3 Mary 22 Female Dancing

例如,我想将这个表组合成如下表或类似的表,因为我有一个内部连接,结果如上所示,我想用 ejs 渲染它,但我我被卡住了,因为我有多行具有相同的 ID。 mysql中有什么东西可以让我得出下表或类似的结果吗?最好的事情是能够将每个 id 的 hobby 列结果返回到一个数组中

id name age gender hobby
1 Max 20 Male Skating, Running, Jogging
2 Tom 24 Male Skating
3 Mary 22 Female Dancing

【问题讨论】:

  • 是的。请参阅聚合函数下的手册 - 请注意,如果这很重要,您目前无法保证爱好的顺序。但我只会在您的应用程序代码中处理这个问题。另外,请注意,如果这是一个表(与查询结果相反),那么它不会被规范化。
  • 这是一个查询结果,我的错。爱好的顺序无关紧要,我只是要遍历它们以将其渲染到其他地方。
  • 好吧,“其他地方”是我处理演示逻辑的地方,但如果您愿意,可以选择以下选项。

标签: mysql node.js ejs mysql2


【解决方案1】:

您可以尝试使用 group_concat()

 select id, name, age, gender, group_concat(hobby) 
 from my_table 
 group by id, name, age, gender

【讨论】:

    猜你喜欢
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 2017-09-12
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    相关资源
    最近更新 更多