You need to enable JavaScript to run this app. SQL查询:如何计算文章发布距今的分钟数以实现投票加权排序
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询:如何计算文章发布距今的分钟数以实现投票加权排序

排序逻辑占位符填充说明

规则匹配要求

为了实现「新发布文章适当加权、同时投票数仍为核心权重」的排序效果,公式的分母位置需要获取对应文章从发布时刻到当前的间隔分钟数,才能完全匹配题目指定的得分计算逻辑:

  • 发布10分钟、累计1票的文章:得分 = 1 * 720 / 10 = 72
  • 发布60分钟、累计10票的文章:得分 = 10 * 720 / 60 = 120
    排序时得分更高的60分钟前10票文章会排在10分钟前1票的文章之前,符合预期的权重平衡效果。

占位符具体填充值

在#####位置填入MySQL原生时间差计算函数即可:
TIMESTAMPDIFF(MINUTE, date, NOW())
该函数会直接返回文章发布时间字段date与当前系统时间NOW()的间隔分钟数,无需额外做单位换算,代入公式后完全匹配计算规则。

边界场景优化

为了避免刚发布0分钟的文章出现分母为0的计算报错,可以对分母做最小保底值处理,替换写法为:
GREATEST(TIMESTAMPDIFF(MINUTE, date, NOW()), 1)
强制将分母的最小值设为1,从根本上规避SQL计算异常,且不会干扰原有排序逻辑的权重关系。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.11 06:45:04