Ich weiß, dass dies etwas abgedeckt wurde, aber es hat nicht meine Situation geholfen, eher gab es Diskrepanzen im Rang. Sie fragen sich, ob jemand helfen könnte!MySQL-Rang, Kann es nicht richtig funktionieren
Also ich ein Spiel haben, sind die Datenbanktabellen: Benutzer, Karten, Spitznamen, user_game_scores
Im ein Leaderboard zu entwickeln und leicht in der Lage, die Informationen nach Punkten geordnet zu erhalten. Fantastisch.
Aber ich möchte dies so einstufen, dass ich eine spezifische Benutzerpunktzahlen ziehen kann und der Rang für alle Punkte relevant ist. zB:
GLOBAL PARTITUREN
user info - Score - (rank)1
user info - Score - (rank)2
user info - Score - (rank)3
etc.
Während USER PARTITUREN sind eher sein:
user info - Score - (rank)82
user info - Score - (rank)94
user info - Score - (rank)115
etc.
ich die Implementierung vorstellen, dies zu sein:
SELECT users.first_name, users.surname, player_nicknames.nickname, maps.map_name, user_game_scores.score,
FIND_IN_SET(score, (SELECT GROUP_CONCAT(score ORDER BY score DESC) FROM user_game_scores)) AS rank
FROM `user_game_scores`
INNER JOIN users ON user_game_scores.user_id = users.user_id
INNER JOIN maps ON user_game_scores.map_id = maps.map_id
INNER JOIN player_nicknames ON user_game_scores.user_id = player_nicknames.user_id
WHERE user_game_scores.deleted is null
AND users.deleted is null
AND player_nicknames.deleted is null
ORDER BY user_game_scores.score DESC
But it returns this: (click here) - names etc have been removed from the image as it may not be appropriate to display Wie Sie kann sehen, dass der Rank dazu neigt, eine oder zwei Nummern (Nummer 2 und 23) zu verpassen. Ich verstehe, dass etwas wie Rang 24 gruppieren und fortfahren wird (was ich bevorzuge, in dieser Instanz zu passieren), aber ich verstehe nicht, warum einige des Rangs fehlen und wirklich nicht wollen, diese Funktionalität zu posten.
Sorry, das ist lang, aber ich dachte, ID bieten so viele Informationen wie ich kann. Danke im Voraus!
Bearbeiten Sie Ihre Frage und liefern Sie Beispieldaten und gewünschte Ergebnisse. –
Es ist wahrscheinlich, weil Ihre "SELECT GROUP_CONCAT" Unterabfrage nicht "gelöschte" ("deleted is null") Einträge filtert. –
Sie Sir, sind erstaunlich. Es war tatsächlich, dass ein anderer Datensatz gelöscht worden war, aber ich hatte den Eintrag von dieser Tabelle nicht gelöscht. Vielen Dank! – TheMellor