2015-07-12 61 views
0

我正在開發一個基於Web的工具,可以幫助分析6位數彩票中出現的數字間隔。查找最近2個日期的數據間隔

讓我們先關注某個數字。說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來完成它。

期待您的幫助

+0

見正常化 – Strawberry

回答

0

有幾個想法值得思考。首先,既然你完全有你的結果集有序,使用PHP循環獲取$ date1 = $ row ['draw_date']兩行。然後獲取下一行/最後一行並設置$ date2 = $ row ['draw_date']。有了這兩個,你有

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

作爲天差異。

(2) 的第二種方式是通過在結果集一個ROWNUMBER,做自聯接用別名地說ROW1和別名b。對於2行別名有mysql的回報DATEDIFF。

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)工作臺與SELECT INTO從ID INT AUTO_INCREMENT主鍵列的顯示LIMIT 2查詢(以及迭代1至42之間的截斷表工作表)以將auto_increment重置爲0.

整個事情可以用外部表1至42包裝,其中42行是帶2列(num,number_of_days),但這不是你的問題。

因此,考慮你可能做這個怎麼罕見的,我可能會建議不要過度工程,並會拍攝#1

+0

我不明白,任何的 - 但也許OP一樣。 – Strawberry

+0

看來date_diff只是解決了這個問題。儘管有時只有1條記錄被返回,這是不可避免的。無論如何謝謝 – hikki

+0

我會認爲幾乎沒有任何數量的歷史數據幾乎是空表,2行是不可避免的任何42 – Drew

相關問題