0
下面的代碼是從SO上的另一個問題獲得的。 Original Q&A連續幾天(連勝)和當天的記錄數
我想計算的連續天(連勝)以來今天記錄,也多少記錄今日的次數。我正在使用它來發送通知。如果用戶在同一天提交新的記錄,他們不應該得到第二個通知,告訴他們他們正在連續(他們被告知第一次提交當天的記錄)。
我試過@streak
之前加入COUNT()
功能,第一SELECT
後幾乎無處不在,似乎合理,但此查詢是太複雜,我看着辦吧。
SELECT streak + 1 as realStreak
FROM (
SELECT dt,
@streak := @streak+1 streak,
datediff(curdate(),dt) diff
FROM (
SELECT distinct date(dt) dt
FROM glucose where uid = 1
) t1
CROSS JOIN (SELECT @streak := -1) t2
ORDER BY dt desc
)
t1 where streak = diff
ORDER BY streak DESC LIMIT 1
http://sqlfiddle.com/#!9/45d386/1/0
的上述結果應該是:
realStreak | RecordsToday
3 | 3
可能與此相同的鏈接,可能是它對你有幫助http://stackoverflow.com/questions/25272098/mysql-count-consecutive-dates-for-current-streak –
感謝@Hulk,這是我得到的SQL代碼片段...我參考了我的問題。 – Ando
http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Mihai