MySQL不支持解析函數,但是計數順序勝/損失的一種方式是經由user variables:
SELECT @seq := IF(@teamid<=>teamid AND @win<=>win,@seq,0)+1 seq,
@teamid := teamid teamid,
@win := win win
FROM RESULTS, (SELECT @teamid:=NULL, @win:=NULL) init
ORDER BY teamid, STR_TO_DATE(eventdate, '%d/%m/%Y')
該查詢可以被用作用於執行進一步分析的基礎。例如,通過團隊取得最長的條紋(包括勝負):
SELECT teamid, win, MAX(seq) FROM (
SELECT @seq := IF(@teamid<=>teamid AND @win<=>win,@seq,0)+1 seq,
@teamid := teamid teamid,
@win := win win
FROM RESULTS, (SELECT @teamid:=NULL, @win:=NULL) init
ORDER BY teamid, STR_TO_DATE(eventdate, '%d/%m/%Y')
) t GROUP BY teamid, win
那麼,如果球隊1具有3負的序列,其次是4勝,其次是2負;第二隊有7勝8負?你會期待什麼結果? – eggyal
應該由eventdate命令DESC – Yannick
這並不回答問題。完全一樣。 – eggyal