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

SQL求助:查询指定用户、指定产品对应的下一个即将到来的日期

问题排查

你的SQL存在两类核心问题:

  • 语法错误:误用位运算符&作为逻辑判断符,SQL中逻辑与需要使用AND关键字,&是按位与运算,会导致条件判断结果完全不符合预期
  • 逻辑错误:子查询未关联外层的用户、产品过滤条件,子查询返回的是全表范围内大于当前时间的最小日期,和你要查询的指定用户、指定产品没有绑定,大概率会出现匹配不到结果的问题
正确实现方案

你可以直接过滤目标数据后排序取第一条即可,不需要嵌套子查询,逻辑更简洁效率也更高:

SELECT `date`
FROM `Products`
WHERE `users` = '1'
  AND `Product` = 'A'
  AND DATE(`date`) > DATE(NOW())
ORDER BY `date` ASC
LIMIT 1;

语句说明:

  1. 先通过WHERE条件过滤出指定用户、指定产品,且日期晚于当前日期的所有记录
  2. 按日期升序排序,排在最前面的就是距离当前最近的即将到来的日期
  3. 用LIMIT 1只取第一条结果,就是你需要的目标值

如果需要兼容没有未来日期的场景,比如要返回最新的历史日期,只需要把DATE(date) > DATE(NOW())条件去掉,或者根据需求调整判断规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:39:01