i Tisch wie diese erhalten:MySQL - Wie Zeilennummer
tb_bid_test
+-------------+---------------------+
| Field | Type |
+-------------+---------------------+
| username | varchar(20) |
| poin | bigint(20) |
+-------------+---------------------+
dann laufe ich diese Abfrage:
select @r := @r+1 as rank, z.* from(SELECT username, sum(poin) as jumlahPoin FROM `tb_bid_test` GROUP BY username order by jumlahPoin desc limit 3)z, (select @r:= 0)y;
und das Ergebnis:
+--------+------------+--------------+
| rank | username | jumlahPoin |
+--------+------------+--------------+
| 1 | neo | 500 |
| 2 | andhie | 348 |
| 3 | john | 123 |
+--------+------------+--------------+
ich mag Holen Sie sich 1 Zeile mit Benutzername andhie, so:
+--------+------------+--------------+
| rank | username | jumlahPoin |
+--------+------------+--------------+
| 2 | andhie| 348 |
+--------+------------+--------------+
oder andere Benutzernamen und erhalten Sie den Rang auch, wenn ich den Code vorher verwenden und where username ='andhie'
den Rang immer 1 hinzufügen. Wie erhalten Sie den aktuellen Rang auf der Grundlage ihrer Punkte?
Fehler erhalten, weil der ";" nach "y". Nachdem das behoben wurde, funktioniert dieser Code dank – neneo