查找最近2个日期中出现的数据的时间间隔

时间:2015-07-12 04:40:08

标签: php mysql

我正在开发一个基于网络的工具,可以帮助分析6位数抽奖中的数字间隔。

让我们先关注一定数量。说7

enter image description here

到目前为止我做过的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完成它。

期待您的帮助

1 个答案:

答案 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