Php 查找最近两个日期的数据间隔

Php 查找最近两个日期的数据间隔,php,mysql,Php,Mysql,我正在开发一个基于网络的工具,可以帮助分析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,但我不知道如何在最新的绘图日期将之前的值减去它 我

我正在开发一个基于网络的工具,可以帮助分析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,但我不知道如何在最新的绘图日期将之前的值减去它

我的目标是列出数字1-42的间隔,我将计划使用PHP实现它


期待您的帮助

我突然想到一些想法

1首先,由于您已经完全对结果集进行了排序,因此在两行上使用PHP循环,得到$date1=$row['draw_date']。然后获取下一行/最后一行并设置$date2=$row['draw_date']。有了这两个你就有了

$diff=date_diff($date1,$date2);
因为天数不同

二, 第二种方法是使用mysql return-datediff,方法是在resultset中包含一个rownumber,并使用别名进行自连接,例如,别名A用于row1,别名b用于row2

datediffa.draw\u date,b.drawdate

获取rownumber的方法可以是:

2a此处找到的行编号:

2b id为int auto_increment主键列的工作表,从显示的LIMIT 2查询中选择into,以及迭代1到42之间的截断表工作表,以将auto_increment重置为0

整个过程可以用一个外部表1到42来包装,其中42行返回2列num,number_of_days,但这不是你的问题


因此,考虑到你这样做的频率很低,我可能会建议你不要过度设计它,并争取1

我不理解这些,但也许OP会理解。看来date_diff简单地解决了这个问题。虽然有时只返回1条记录,这是不可避免的。不管怎样,谢谢你,我认为,除了一个几乎为空的表之外,几乎任何数量的历史数据,对于42行中的任何一行来说,2行都是不可避免的。是的。有可能这个数字没有出现在给定的历史时间范围内,也有可能17从未出现在所有数据的历史中