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

Sådan vælger du et element, det nedenfor og det ovenfor i MYSQL

Her er en anden måde at gøre det på ved hjælp af UNION s. Jeg synes, det er lidt nemmere at forstå og mere fleksibelt end det accepterede svar. Bemærk, at eksemplet antager id feltet er unikt, hvilket ser ud til at være tilfældet baseret på dit spørgsmål.

SQL-forespørgslen nedenfor antager, at din tabel hedder demo og har et enkelt unikt id felt, og tabellen er blevet udfyldt med de værdier, du har angivet i dit spørgsmål.

( SELECT id FROM demo WHERE STRCMP ( 'd01', id ) > 0 ORDER BY id DESC LIMIT 1 ) UNION ( SELECT id FROM demo WHERE id = 'd01' ORDER BY id ) UNION ( SELECT id FROM demo WHERE STRCMP ( 'd01', id ) < 0 ORDER BY id ASC LIMIT 1 ) ORDER BY id

Det giver følgende resultat:b03, d01, d02 .

Denne løsning er fleksibel, fordi du kan ændre hver af LIMIT 1 sætninger til LIMIT N hvor N er et hvilket som helst tal. På den måde kan du f.eks. få de foregående 3 rækker og de følgende 6 rækker.



  1. JDBC Opret tabel Eksempel Brugserklæring

  2. Bestil en MySQL-tabel efter to kolonner

  3. Sådan bestiller du efter dato i SQLite

  4. Hentning af data med Jquery, AJAX og PHP fra en MySQL-database