Tak międzyczasie szukam odpowiedzi na następuący problem:
Mam ową tabele:
+--------+---------+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------+
| tab_id | user_id | sum_value | value1 | value2 | value3 | value4 | value5 | value6 | value7 | value8 | value9 | value10 |
+--------+---------+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------+
| 5 | 12 | 73.3001 | 5.000 | 9.000 | 9.200 | 5.000 | 10.001 | 9.100 | 8.000 | 6.000 | 7.000 | 5.000 |
| 6 | 10 | 80.8002 | 10.001 | 9.000 | 8.000 | 7.000 | 4.000 | 5.000 | 10.000 | 10.801 | 8.000 | 9.000 |
| 7 | 16 | 80.8001 | 10.001 | 9.000 | 8.000 | 7.000 | 4.000 | 5.000 | 10.000 | 10.800 | 8.000 | 9.000 |
| 8 | 15 | 68.2000 | 6.000 | 6.000 | 7.000 | 5.000 | 4.000 | 9.000 | 8.000 | 6.000 | 10.000 | 7.200 |
| 9 | 17 | 87.5000 | 10.000 | 9.000 | 8.000 | 6.400 | 10.100 | 7.000 | 10.000 | 10.800 | 8.000 | 8.200 |
| 10 | 14 | 73.3001 | 5.000 | 9.000 | 9.200 | 10.000 | 10.001 | 9.100 | 7.000 | 4.000 | 5.000 | 5.000 |
| 11 | 9 | 73.3001 | 4.000 | 9.000 | 10.000 | 5.000 | 10.001 | 9.100 | 8.000 | 6.000 | 7.000 | 5.000 |
| 12 | 9 | 67.1001 | 3.000 | 7.000 | 10.000 | 5.000 | 10.001 | 6.000 | 8.000 | 6.000 | 7.000 | 5.000 |
+--------+---------+-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------+
i teraz chciałbym ponumerować wiersze.. więc mogę skorzystać z następującego kodu:
SET @row :=0;
SELECT *, @row:=row+1 as nr FROM tab_nr_7
ORDER BY sum_value DESC;
ale teraz próbując wyciagnąć wynik np. dla user_id = 15 chciałbym uzyskać nr = 4 , a moje dotychczasowe próby kończą się na tym, że dostaje nr =1 :(
Próbowałem m.in. takiego kodu:
(posiłkowałem się kodem znalezionych w sieci..)
SET @row :=0;
SELECT nr, user_id FROM (SELECT @row:=@row+1 as nr, user_id FROM tab_nr_7 WHERE user_id = 15 ORDER BY sum_value DESC) as sub WHERE user_id = 15