sql >> Base de Datos >  >> RDS >> Mysql

Ventana de selección de SQL alrededor de una fila en particular

Probablemente podría usar UNION y luego recortar los resultados adicionales en el código de procedimiento que muestra los resultados (ya que esto devolverá 20 filas en los casos sin borde):

(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

EDITAR:límite aumentado a 10 en ambos lados de la UNIÓN, como lo sugiere le dornier .

EDIT 2:Modificado para reflejar mejor la implementación final, según lo sugerido por Dominic.