gpt4 book ai didi

php - 获取每组分组结果的记录

转载 作者:行者123 更新时间:2023-11-29 22:04:03 25 4
gpt4 key购买 nike

我希望你能帮助我在 while 循环中查询和显示结果。

我偶然发现了几个类似的问题,例如 this one虽然它有点回答了我的问题,但也有点没有。

我有以下查询:

(SELECT  dt_id, DATE_FORMAT(dt_date, '%m-%d-%Y') as dt_date,
dt_data, dt_bodypart, dt_wktype, dt_wkurl, dt_year,
COUNT(*) as Total
FROM data
WHERE dt_year = '2015'
and dt_username_member = 'admin'
GROUP BY dt_date
ORDER BY dt_date DESC
LIMIT 0,100)
ORDER BY dt_date ASC

它按日期显示行并按日期对它们进行分组,因为如果相同的日期出现两次,处理结果的数组无法在日历中显示超过 1 个结果。我还计算每个日期有多少条记录。

我实际上可以通过在 while 循环内运行查询来使其按我喜欢的方式工作(这是不好的做法),但我想避免这种情况并以更有效和更好的方式进行

无法处理这样的结果,因为我的数组只会在日历页面上显示一个结果(最近添加到数据库中的结果):

array {
'08-26-2015' : 'something',
'08-26-2015' : 'something else',
'08-27-2015' : 'else',
}

目前我有这个,但如果该日期的记录计数> 1,我也会在 while 循环中运行查询,并且我希望获得完全相同的结果,但不会在一段时间内运行对计数> 1 的记录的查询循环

array {
'08-26-2015' : 'something, something else',
'08-27-2015' : 'else',
}

最佳答案

经过一番挖掘,我找到了解决方案。我想出了一个查询,该查询将检索所有结果,而无需在 while 循环内运行查询来获取每天的所有信息。这是查询:

(SELECT DATE_FORMAT(dt_date, '%m-%d-%Y') dt_date, 
count(dt_date) as date_count,
GROUP_CONCAT(dt_data ORDER by dt_date SEPARATOR '>>') dt_data,
GROUP_CONCAT(dt_bodypart ORDER by dt_date SEPARATOR '>>') dt_bodypart,
GROUP_CONCAT(dt_wktype ORDER by dt_date SEPARATOR '>>') dt_wktype,
GROUP_CONCAT(dt_wkurl ORDER by dt_date SEPARATOR '>>') dt_wkurl
FROM data
WHERE dt_username_member = 'admin' and dt_year = '2015'
GROUP BY dt_date ORDER BY dt_date ASC) ORDER BY dt_date ASC

此查询会将所有信息分组到与特定日期匹配的行中,如下所示:

dt_date     |  dt_data                   |  
------------------------------------------
2015-09-03 | something>>something else |

所以之后你需要做的就是分解 dt_data 就可以了。

关于php - 获取每组分组结果的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32333243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com