【问题标题】:Merge MySQL Rows Together将 MySQL 行合并在一起
【发布时间】:2015-06-16 10:15:38
【问题描述】:

我有一张这样布置的桌子:

ID  | Date       | Description          | Notes
 1  | 2015-03-25 | Action Completed     | 
 2  | 2015-02-12 | Action Not Completed |
 1  |            |                      | Completed With Ease
 2  |            |                      | Difficulty Performing

是否有任何代码可用于按 ID 将它们合并在一起,像这样?

 ID | Date       | Description          | Notes
 1  | 2015-03-25 | Action Completed     | Completed With Ease
 2  | 2015-02-12 | Action Not Completed | Difficulty Performing

我已经看过了,但找不到任何可以正常工作的东西。

【问题讨论】:

  • 您尝试过简单的 NATURAL JOIN 吗?

标签: mysql merge rows


【解决方案1】:

按应该唯一的列分组,然后在其他列上使用聚合函数,例如 max()

select id, 
       max(date) as date, 
       max(description) as description, 
       max(notes) as notes
from your_table
group by id

【讨论】:

  • 这似乎有效,但是当我刷新我的页面时,一切都会恢复到原来的样子。我做错了吗?
  • 不知道。您可以就此提出另一个问题,提供代码、您使用的语言等。
【解决方案2】:

小提琴:http://sqlfiddle.com/#!9/305b7/1

SELECT id, 
  max(`date`),
  GROUP_CONCAT(Description),
  GROUP_CONCAT(Notes)
FROM table1
GROUP BY id

【讨论】:

  • 两个答案都会发生同样的事情。它似乎可以工作,但是当我刷新页面时,一切都会恢复到原来的样子。我该怎么办?
  • @thatguythere 刷新是什么意思?向我们展示您的页面和代码
  • 当我在浏览器中刷新页面时。我正在使用 phpmyadmin。
  • 您无法刷新 phpmyadmin 页面以获取查询结果 - 您必须按按钮 gorunrefresh但它应该是页面上的按钮或链接
  • 我将代码粘贴到 SQL 选项卡中,然后单击 go,然后它会调出表格。一切看起来都已经完成了,但是当我刷新页面时,它又回到了原来的样子。
猜你喜欢
  • 2020-01-23
  • 2011-10-01
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
相关资源
最近更新 更多