Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL-Auswahlfenster um eine bestimmte Zeile herum

Könnte wahrscheinlich einfach eine UNION verwenden und dann die zusätzlichen Ergebnisse im Verfahrenscode abschneiden, der die Ergebnisse anzeigt (da dies 20 Zeilen in den Nicht-Edge-Fällen zurückgibt):

(SELECT 
     * 
FROM photos
   WHERE ID < #current_id#
   ORDER BY ID DESC LIMIT 10)
UNION
  (SELECT *
   FROM photos
   WHERE ID >= #current_id#
   ORDER BY ID ASC LIMIT 10)
ORDER BY ID ASC

BEARBEITEN:Limit auf 10 auf beiden Seiten der UNION erhöht, wie von le dorfier vorgeschlagen .

EDIT 2:Geändert, um die endgültige Implementierung besser widerzuspiegeln, wie von Dominic vorgeschlagen.