Witam,

Mam przykładową tabele projects zawierającą id, category_id, title

Chciałbym poznać aktualną pozycję wybranego rekordu w bazie danych, dostaję ją z użyciem takiego zapytania:

  1. SET @inc :=0;SELECT @inc := @inc + 1 AS nr, title, category_id, id FROM projects;


i teraz chciałbym to zapytanie skomplikować tak aby pole nr pokazywało pozycję rekordu ale z uwzględnieniem category_id, czyli w przypadku gdy category_id rekordu zmieni się baza danych powinna stworzyć nową zmienną @inc tylko dla danej wartości category_id. Z góry dziękuje za wszystkie podpowiedzi.

Witam,

Wymyślilem coś takiego, być może się komuś przyda:

  1. SELECT p.id, p.category_id, p.title, FIND_IN_SET(p.id, (SELECT GROUP_CONCAT(id) FROM projects WHERE category_id=p.category_id)) AS pos FROM projects AS p ORDER BY category_id, pos;