Mysql 带顺序的SQL序列问题
我有以下sqlMysql 带顺序的SQL序列问题,mysql,sql,Mysql,Sql,我有以下sql SELECT @seq := IF(@win<=>win,@seq,0)+1 seq, @win := win win FROM fighterfighthistories, events where fighterid = 252 AND win IS NOT NULL AND fighterfighthistories.eventid=events.id ORDER BY events.eventon DESC, fighterfighthistorie
SELECT @seq := IF(@win<=>win,@seq,0)+1 seq,
@win := win win
FROM fighterfighthistories, events
where fighterid = 252 AND win IS NOT NULL AND
fighterfighthistories.eventid=events.id
ORDER BY events.eventon DESC, fighterfighthistories.id ASC
但我希望它返回以下序列(seq)
正如您所看到的,一旦序列达到win=0,它就应该重新开始。如果我不使用ORDERBY语句,它是有效的,但是赢的顺序不正确。因为我需要按事件的顺序排列,所以使用两列的order BY子句将按第一列排序,第二列仅用作平分符。在你张贴的条款中
ORDER BY events.eventon DESC, fighterfighthistories.id ASC
“eventon”列中的数据具有唯一的值,因此没有要断开的连接
这是你的数据
seq win eventon
1 1 1 31-12-2000
2 9 1 30-12-2000
3 1 1 21-12-2000
4 2 1 11-12-2000
5 1 0 10-12-2000
6 1 0 01-12-2000
它在“eventon”列上按降序正确排序
ORDER BY events.eventon DESC, fighterfighthistories.id ASC
seq win eventon
1 1 1 31-12-2000
2 9 1 30-12-2000
3 1 1 21-12-2000
4 2 1 11-12-2000
5 1 0 10-12-2000
6 1 0 01-12-2000