Mysql
 sql >> Database >  >> RDS >> Mysql

Finestra di selezione SQL attorno a una riga particolare

Probabilmente potrebbe semplicemente usare UNION e quindi tagliare i risultati extra nel codice procedurale che mostra i risultati (poiché ciò restituirà 20 righe nei casi non edge):

(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:Aumentato il limite a 10 su entrambi i lati dell'UNIONE, come suggerito da le dorfier .

EDIT 2:modificato per riflettere meglio l'implementazione finale, come suggerito da Dominic.