PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (MYSQL) - Ermitteln wie viele Datensätze vor einem bestimmten Datensatz existieren wenn Order By verwendet wird



darkness
17.08.2018, 13:29
Hey!

Ich hab folgendes Problem hier derzeit ...

Ich habe eine Liste mit Pagination.
Ich möchte nun (aus Gründen) eine Datensatz ID übergeben und ermitteln zu welcher Pagination Seite dieser Datensatz gehört.

Ich gehe davon aus das ich dafür quasi u.a. nur ermitteln muss wie viele Datensätze vor dem Datensatz mit der besagten ID existieren.

Da ich Order BY (created_at, title etc) verwende fällt mir da keine lösung ein ... jemmand ne idee?

lg

y0l0sw4gg3r
17.08.2018, 13:38
Gibt es einen Grund, warum du das in einer Query lösen möchtest? Ansonsten könntest du das ganze ja in unterschiedlichen Querys oder eben Subquerys lösen?!
Wie sieht deine Query denn aktuell aus, und vor allem, wie sieht das Datenbanklayout aus?

4nn8
17.08.2018, 14:25
SET @i = 0;
SELECT * FROM (SELECT @i:=@i+1 AS i, id, name FROM posts ORDER BY created_at) AS tmp WHERE id = 14;

In i hast du dann die Position der gesuchten Row (mit der id 14).
i nur noch durch die Pagination-Größe teilen und abrunden, dann hast du die Seite.