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:
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:
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;