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

SQL-valgvindue omkring en bestemt række

Kunne sandsynligvis bare bruge en UNION og derefter trimme de ekstra resultater af i den proceduremæssige kode, der viser resultaterne (da dette vil returnere 20 rækker i tilfælde uden kant):

(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:Øget grænse til 10 på begge sider af UNION, som foreslået af le dorfier .

EDIT 2:Ændret for bedre at afspejle den endelige implementering, som foreslået af Dominic.



  1. MySQL Workbench kan ikke oprette forbindelse til databaseserver

  2. Reparer korrupt database postgresql

  3. Hvordan Substr() virker i SQLite

  4. MYSQL vælg et stykke af en streng og bestil efter det stykke