Mysql
 sql >> Base de données >  >> RDS >> Mysql

Fenêtre de sélection SQL autour d'une ligne particulière

Vous pourriez probablement simplement utiliser un UNION, puis supprimer les résultats supplémentaires dans le code procédural qui affiche les résultats (car cela renverra 20 lignes dans les cas non extrêmes) :

(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

EDIT :Augmentation de la limite à 10 des deux côtés de l'UNION, comme suggéré par le dorfier .

EDIT 2 :modifié pour mieux refléter la mise en œuvre finale, comme suggéré par Dominic.