Avatar billede tommyf Nybegynder
11. januar 2008 - 17:54 Der er 4 kommentarer og
1 løsning

SQL-spørgsmål: SELECT * FROM tabel WHERE id = 1,2,3

Jeg har en række bøger i en tabel, som har hvert deres id.
Så har jeg en tabel med KategoriID, KategoriBeskrivelse, BøgersID

Kan jeg lave et udtræk fra tabellen med bøger, hvor jeg snupper alle de id'er der er i kategori1? BøgersID indeholder f.eks. værdien "1,2,3,4"

Skal jeg i stedet lade tabellen med bøgerne have et felt der angiver hvilken kategori den tilhører? Der synes jeg bare, at støde på samme problem, da dette felt også kan indeholde "1,4,6" når én bog godt kan hører til flere kategorier.
Avatar billede w13 Novice
11. januar 2008 - 18:00 #1
Altså den skal kunne finde f.eks. "2" i værdien "1,2,3,4"?

Hvis du nu havde mulighed for at skrive ",1,2,3,4," i stedet for, kunne du med fordel tjekke således:

SELECT * FROM tabel WHERE id LIKE '%,1,%'

Procenttegnene angiver, at der muligvis står noget uden om.

Grunden til, at du så skulle skrive det med komma først og sidst, er, at vi ellers risikerer at få fat på alle værdier, der indeholder 1, altså både 11, 21, 1032 osv.
Avatar billede arne_v Ekspert
11. januar 2008 - 18:01 #2
mange:mange relation

bog tabellen har et bogid felt
kategori tabellen har et kategoriid felt
en tredie tabel bogkategori har kun 2 felter bogid og kategoriid
Avatar billede tommyf Nybegynder
11. januar 2008 - 18:16 #3
Tak for den alternative løsning W13 :)
Avatar billede w13 Novice
11. januar 2008 - 19:17 #4
Og tak for point. =)
Avatar billede atheist Nybegynder
18. januar 2008 - 13:20 #5
jeg vil også sige en mange-til-mange relation, det andet er ikke god database praksis, og kan blive noget rod at vedligeholde... Læs evt. mere om normalisering af en database:
http://en.wikipedia.org/wiki/Database_normalization - det er her især 1. og 2. normalform du skal kigge på.
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

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