我正在开发一个基于网络的工具,可以帮助分析6位数抽奖中的数字间隔。
让我们先关注一定数量。说7
到目前为止我做过的SQL查询:
SELECT * FROM `l642` WHERE `1d`=7 OR `2d`=7 OR `3d`=7 OR `4d`=7 OR `5d`=7
OR `6d`=7 ORDER BY `draw_date` DESC LIMIT 2
这将拉出存在数字7的最后两个最新日期
我正在考虑使用DATEDIFF,但我对如何在最新的draw_date中减去先前的值感到困惑
我的目标是列出数字1-42的间隔,我计划用PHP完成它。
期待您的帮助
答案 0 :(得分:0)
一些想法浮现在脑海中。
(1)首先,由于您完全按顺序排列了结果集,因此在获取$ date1 = $ row ['draw_date']的两行上使用PHP循环。然后获取下一行/最后一行并设置$ date2 = $ row ['draw_date']。你有这两个
$diff=date_diff($date1,$date2);
作为天数的差异。
<强>(2)强> 第二种方法是让mysql返回datediff,方法是在结果集中包含一个rownumber并使用别名进行自联接,例如对row1使用别名a,为row2使用别名b。
datediff(a.draw_date,b.drawdate)
。
如何获得rownumber可能是:
(2a)此处的rownumber:With MySQL, how can I generate a column containing the record index in a table?
(2b)具有id int auto_increment主键列的工作表,从显示的LIMIT 2查询中选择进入(以及迭代1到42之间的截断表工作表),将auto_increment重置为0。
整个东西可以用外部表1到42包裹,其中42行被带回2列(num,number_of_days),但这不是你的问题。
因此,考虑到您可能不经常这样做,我可能会建议不要过度设计它并拍摄#1