mam tabelę która wygląda mniej więcej tak :
id nazwa value 1 nazwa1 20 3 nazwa2 40 4 nazwa3 40 5 nazwa4 50 6 nazwa5 55
w jaki sposób wyciągnąć zapytaniem SQL na której pozycji znajduje się np. id=3,gdy sortuje po value ASC ?
SET @id=7784362,@nr = 0; SELECT pos FROM ( SELECT @nr:=@nr+1, IF(s.id=@id, @nr , 0) AS pos,s.id FROM samochody s WHERE s.category = 363 ORDER BY s.price ) samochody WHERE samochody .id = @id;
SELECT @nr:=@nr+1, IF(s.id=@id, @nr , 0) AS pos,s.id FROM samochody s WHERE s.category = 363 ORDER BY s.price
SET @id=7784362,@nr = 0, @idnr = 0; SELECT @idnr AS nr FROM ( SELECT @nr:=@nr+1, IF(s.id =@id, @idnr := @nr,@idnr=@idnr),s.id FROM samochody s WHERE s.category = 363 ORDER BY s.price ) samochody WHERE samochody.id = @id;
SELECT @nr:=@nr+1, IF(s.id =@id, @idnr := @nr,@idnr=@idnr),s.id FROM samochody s WHERE s.category = 363 ORDER BY s.price
SET @id=7784362,@nr = 0, @idnr = 0; SELECT position FROM ( SELECT @nr:=@nr+1 AS position,s.id FROM samochody s WHERE s.category = 363 ORDER BY s.price ) samochody WHERE samochody.id = @id;