我正在开发一个基于Web的工具,可以帮助分析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来实现。

期待您的帮助

最佳答案

我想到了一些想法。

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

$diff=date_diff($date1,$date2);


作为天数的差异。

(2)
第二种方法是让mysql通过在结果集中包含一个行号并使用别名(例如row1的别名a和row2的别名b)进行自联接来返回datediff。

datediff(a.draw_date,b.drawdate)

如何获取行号可能是:

(2a)行编号在这里找到: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),但这不是您的问题。

因此,考虑到您可能很少这样做,我可能建议您不要过度设计它,而是争取排名第一

关于php - 查找最近2个日期的数据间隔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31364426/

10-13 02:00