【发布时间】:2020-01-20 09:12:58
【问题描述】:
假设我们有这样的表:
+----------------------------------+----------------------------+
| id | start |
+----------------------------------+----------------------------+
| 06c561305383482e98064ssdfd6ccf74 | 2019-08-30 14:41:40.697301 |
| 0aec07d9acdd48c485ab3sfhsffdsa8c | 2019-09-02 05:45:09.274541 |
| 0d240asdfasd49579e2be8821b908fdc | 2019-09-02 05:45:08.745885 |
| 00al4eebb9a34sdsdfsdff128518dc4f | 2019-08-30 14:42:29.094314 |
是否可以在单个查询中获取与此结构类似的数据? 我想获取按日期组中所有对象 ID 的唯一日期分组的数据。
date:
2019-08-30:
ids:
- 06c561305383482e98064ssdfd6ccf74
- 00al4eebb9a34sdsdfsdff128518dc4f
2019-09-02:
ids:
- 0aec07d9acdd48c485ab3sfhsffdsa8c
- 0d240asdfasd49579e2be8821b908fdc
【问题讨论】:
-
GROUP_CONCAT(id) ... GROUP BY date(`start`)? -
是否涉及其他编程语言(如 PHP),因为您的预期结果看起来像您想要发送到应用程序的显示格式或“伪 JSON”格式?
-
另外,如果您遵循@SalmanA 的建议,这很可能是正确的,请不要忘记运行
SET SESSION group_concat_max_len = @@max_allowed_packet;,否则您将达到 1024 字符长度最大值,GROUP_CONCAT会静默截断而不会出现错误