You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL按级别和最近7天过滤记录的SQL查询求助

按级别和最近7天过滤具体记录的解决方案

你的原查询因为使用了COUNT()聚合函数,只会返回统计结果,而且week(tbe.date)的条件写法不完整,无法正确筛选最近7天的数据。要获取符合条件的具体记录,可参考以下写法:

基础版:获取最近7天UTILS级别的所有具体记录

SELECT *
FROM tableexample AS tbe
WHERE tbe.level = 'UTILS'
  AND tbe.date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY);
  • DATE_SUB(CURDATE(), INTERVAL 7 DAY) 会计算当前日期往前推7天的日期,确保只筛选最近7天内的记录(包含当天)。如果你的date字段是带时间的datetime类型,这个条件依然能覆盖最近7天的所有时间点数据。

限制条数版:取最新的30条记录

如果要像你示例里那样只返回30条最新的记录,加上排序和条数限制即可:

SELECT *
FROM tableexample AS tbe
WHERE tbe.level = 'UTILS'
  AND tbe.date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
ORDER BY tbe.date DESC
LIMIT 30;
  • ORDER BY tbe.date DESC 按日期倒序排列,让最新的记录排在前面;LIMIT 30 限制最多返回30条结果。

不同数据库的适配写法

如果你的数据库不是MySQL,语法略有差异:

SQL Server

SELECT TOP 30 *
FROM tableexample AS tbe
WHERE tbe.level = 'UTILS'
  AND tbe.date >= DATEADD(DAY, -7, GETDATE())
ORDER BY tbe.date DESC;

Oracle

SELECT *
FROM (
  SELECT *
  FROM tableexample AS tbe
  WHERE tbe.level = 'UTILS'
    AND tbe.date >= SYSDATE - 7
  ORDER BY tbe.date DESC
)
WHERE ROWNUM <= 30;

内容的提问来源于stack exchange,提问作者Emerson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:05:19