MySQL
我有表,我存储 user_matches 并且结果:
n_match id_user id_score
1 55 1
1 66 0
这意味着,“id=55 的用户赢得了 id=1 的用户与 id=66 的用户的匹配”。
因此,我们有 10、100、1000 场比赛,用户赢或输给对手:
n_match id_user id_score
1 55 1 (win)
1 66 0
2 55 0 (lose)
2 77 1
3 55 1 (win)
3 77 0
4 55 1 (win)
4 77 0
5 55 1 (win)
5 77 0
好的。如您所见,用户赢得了 3 场比赛而没有输掉(获胜系列赛)——这就是我的查询所需要的。
问题:我怎样才能从这张表中获得最长系列的获胜比赛?是否可以在 sql 端或服务器端不循环 - 仅来自查询?
谢谢。
编辑:我刚刚理解的解决方案之一, - 将所有匹配项作为字符串获取,例如 001010101111010101011,然后将其拆分为带有分隔符 '0' -> [1, 1, 1, 1111, ...] 的字符串数组,然后取最长的字符串长度。
但在这种情况下,我必须编写服务器端代码 =\ 这不好,但 mb 最快。