Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Janela de seleção de SQL em torno de uma linha específica


Provavelmente poderia apenas usar um UNION e, em seguida, cortar os resultados extras no código procedural que exibe os resultados (já que isso retornará 20 linhas nos casos sem borda):
(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:Aumento do limite para 10 em ambos os lados da UNIÃO, conforme sugerido por le dorfier .

EDIT 2:Modificado para refletir melhor a implementação final, conforme sugerido por Dominic.