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

如何编写SQL实现按当前月份查询含跨新年周期的展示图片?

解决方案

逻辑说明

要覆盖跨年场景,只需要把时间范围拆为非跨年和跨年两类分别判断即可,所有符合条件的图片满足以下任意一条规则:

  • start_month 值为0:直接命中全年展示规则
  • 非跨年周期(start_month ≤ end_month):当前月份落在起始月到结束月的闭区间内
  • 跨年周期(start_month > end_month):当前月份大于等于起始月,或者小于等于结束月

最终查询语句

注意需要用括号明确逻辑优先级,避免运算顺序错误:

WHERE
  -- 全年展示
  (`start_month` = 0)
  OR
  -- 非跨年场景匹配
  (`start_month` <= `end_month` AND $month BETWEEN `start_month` AND `end_month`)
  OR
  -- 跨年场景匹配
  (`start_month` > `end_month` AND ($month >= `start_month` OR $month <= `end_month`))
ORDER BY RAND()

效果验证(以当前月份11月为例)

  • Image1.jpg(10月到次年3月):属于跨年场景,11≥10 匹配成功
  • Image2.jpg(3月到10月):非跨年场景,11不在3-10区间 匹配失败
  • Image3.jpg(7月到次年5月):属于跨年场景,11≥7 匹配成功
  • Image4.jpg(全年展示):start_month=0 匹配成功
    完全符合预期的展示规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:45:08