回答

收藏

MySQL将记录数限制为一列中的5个唯一值

技术问答 技术问答 217 人阅读 | 0 人回复 | 2023-09-12

我正在尝试根据游戏中的杀戮次数创建排行榜,其中显示了排名前5位的玩家(杀戮次数相同的人排名相同)。  b( K, N0 ~: T, H$ V
我如何获取所有记录直到排名5(所有记录直到一列(杀死)中最多5个唯一值)。
+ R8 q$ U2 k# V, c& @( f/ [  p0 V: I我希望这是有道理的。4 y6 ]$ w# P1 b) D
查询还将需要考虑地图。例如:WHERE map =’map_name’
' B  ^0 |$ ]% ]% s6 Y+ x1 k2 \例如:
+ s; [: j4 G& X桌子:# h7 f- h9 F3 h- ^3 d0 `
Name, Map, Kills" D7 G& u! p7 o
user0 - map2 - 30
! X: |- J4 [4 S$ n2 suser1 - map1 - 30$ [+ Z3 @$ Y0 z2 Z4 B
user2 - map1 - 27
5 x0 R9 m4 `5 ?9 xuser3 - map1 - 54
+ l7 o$ I8 H/ e' ~1 [8 y- cuser4 - map1 - 34
, h2 c9 O, v7 fuser5 - map1 - 34
7 O9 t+ w( G+ |: Zuser6 - map1 - 27
. y) c. C* ~% q) d, fuser7 - map1 - 22
8 C2 o0 ?7 D' ]% R3 h" o! Iuser8 - map1 - 22" E4 i  M% u* p7 S
user9 - map1 - 31
; _  m7 X0 g; T1 Fuser10 - map1 - 21, J, \2 |3 Q- `$ i# ]3 B; }
user11 - map1 - 27! s2 h+ c2 K4 I9 [& i
user12 - map2 - 34/ Q8 {6 @2 I4 o. d. {9 w; X
需要的结果(地图名称为map1的前5名中的所有玩家/记录):
& H4 l- z2 |% S1. user3 - 54
  m9 D" C9 h8 J8 X  A2. user4 - 342 @% c& }8 a) G- V6 d# X
   user5 - 34
+ K# v5 n- S5 {6 k2 \8 o& V3. user9 - 319 y0 R6 r/ _8 J5 ~1 K/ c" {
4. user1 - 30( w4 o' U* P7 K" n  u5 B
5. user2 - 27$ ~+ ~- C4 J; K* \
   user6 - 27) e9 p; ~. Y2 s
   user11 - 27
; h, U/ n5 A4 O1 j2 p3 I2 D9 g到目前为止,我有:SELECT * FROM记录WHERE地图= 'map1' ORDER BY杀死DESC, b. T! J& o3 k
但我需要将返回的行数限制为仅所需的数量top 5 ranks,而不是所有行的数量。  c% k* i9 I2 r' j& u0 {
               
6 v$ c) z: R! A! L: G* n6 V( S解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则