Avatar billede pjarnfelt Nybegynder
30. maj 2005 - 17:21 Der er 7 kommentarer og
1 løsning

én før og én efter

Jeg har en entitet med billeder i en mySQL database.
Alle billeder tilhører et galleri.

Hvis jeg kender billedeID'et, f.eks 7, og galleriID'et f.eks 5
er det muligt v.h.a SQL at finde bet billede der er før 7 og det billede der er efter 7 (ikke nødvendigvis 6 og 8 :p ) for galleri 5?
Hvis ja, hvordan?

Eller skal man have fat i alle billederne fra galleri 5, gemme dem i et array og via php finde de tre billedeID'er.

Jeg ville nu foretrække SQL løsningen da det ville give mindre unødig information og det er mere clean :)

V.H
Patrick
Avatar billede arne_v Ekspert
30. maj 2005 - 17:39 #1
SELECT id FROM tabel WHERE id < 7 ORDER BY id DESC LIMIT 1

SELECT id FROM tabel WHERE id > 7 ORDER BY id ASC LIMIT 1
Avatar billede kasper.h Nybegynder
30. maj 2005 - 17:51 #2
eller hvis du kører MySQL 4.1+ burde det kunne lade sig gøre med et par subqueries,

SELECT * FROM tabel WHERE id = 7 OR id = (SELECT id FROM table WHERE id < 7 ORDER BY id ASC LIMIT 1) OR id = (SELECT id FROM table WHERE id > 7 ORDER BY id DESC LIMIT 1);
Avatar billede pjarnfelt Nybegynder
30. maj 2005 - 17:52 #3
hmm... to kommandoer?
Det må kunne gøres med en.

Hvis der ingen andre svar kommer snart, gider du så ikke svare istedet for at kommentere, ellers kan jeg ikke give dig point.

Derudover tak for svaret Arne :)
Avatar billede pjarnfelt Nybegynder
30. maj 2005 - 17:57 #4
desværre jeg har mySQL 4.0.23.

Men den kommando du skriver kasper... Skulle den give 2 svar?

Hvis den gør, vil jeg prøve at få min webhoster til at opgradere
Avatar billede arne_v Ekspert
30. maj 2005 - 17:58 #5
så stabler du dem bare med en UNION:


(SELECT id FROM tabel WHERE id < 7 ORDER BY id DESC LIMIT 1)
UNION
(SELECT id FROM tabel WHERE id > 7 ORDER BY id ASC LIMIT 1)
Avatar billede kasper.h Nybegynder
30. maj 2005 - 17:59 #6
den skulle give 1 svar, med de 3 poster du vil have valgt.
Avatar billede pjarnfelt Nybegynder
30. maj 2005 - 18:10 #7
Det må være dig der skal have pointene så.

Vær venlig at smide et svar denne vej :)
Avatar billede arne_v Ekspert
30. maj 2005 - 18:18 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester