php – 执行查询的问题(不在GROUP BY中)
发布时间:2020-12-13 17:08:50 所属栏目:PHP教程 来源:网络整理
导读:我正在使用 PHP并尝试在MySQL上执行查询, 当我使用let说的MySqlYog执行此查询时,我得到了结果,一切似乎都没问题. 查询: SELECT start_time AS `Date`,COUNT(1) AS `Count` FROM offline_execution_jobs WHERE start_time = NOW() - INTERVAL 365 DAYAND app
我正在使用
PHP并尝试在MySQL上执行查询,
当我使用let说的MySqlYog执行此查询时,我得到了结果,一切似乎都没问题. 查询: SELECT start_time AS `Date`,COUNT(1) AS `Count` FROM offline_execution_jobs WHERE start_time >= NOW() - INTERVAL 365 DAY AND application_name LIKE 'SPLAT-ROLLING' OR application_name LIKE 'SPLAT' GROUP BY (WEEK(start_time)) ORDER BY `Date` ASC ; 但问题是当我尝试从PHP执行查询时: 我收到这个错误: Invalid query: 'nolio_db.offline_execution_jobs.start_time' isn't in GROUP BY 如果有人遇到过这个问题,我会很高兴听到如何克服它吗? 我需要以下列格式输出GROUP BY: 第一列中的DATE格式的一周的第一天和作为第二列的事件的计数. 2011-01-09 03:28:54 | 38 解决方法
如果Date应该是表中找到的周的第一个start_time值,而不是根据日历的一周的第一天,那么您可以简单地聚合start_time,如下所示:
SELECT MIN(start_time) AS `Date`,COUNT(1) AS `Count` FROM offline_execution_jobs WHERE start_time >= NOW() - INTERVAL 365 DAY AND application_name LIKE 'SPLAT-ROLLING' OR application_name LIKE 'SPLAT' GROUP BY (WEEK(start_time)) ORDER BY `Date` ASC ; 顺便说一句,您可能不应该仅通过WEEK(start_time)进行分组.去年日期可能具有相同的周数,因此您的查询将分组不同的周数.要解决这个问题,您只需将YEAR(start_time)添加到GROUP BY列表: SELECT MIN(start_time) AS `Date`,COUNT(1) AS `Count` FROM offline_execution_jobs WHERE start_time >= NOW() - INTERVAL 365 DAY AND application_name LIKE 'SPLAT-ROLLING' OR application_name LIKE 'SPLAT' GROUP BY YEAR(start_time),WEEK(start_time) ORDER BY `Date` ASC ; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |