Avatar billede michaeltryl Seniormester
09. april 2011 - 15:42 Der er 5 kommentarer og
2 løsninger

where felt like '%noget'%' problem

Jeg har nogle tekster som kan gemmes i flere kategorier.
Jeg har en tabel som indeholder alle kategorier med et id til hver.

til hver tekst gemmes kategorierne i feltet kat_id sådan.
1, 4, 6,
4, 8, 11, 14,

Jeg forsøger så at hente alle tekster med kat_id 1
Jeg forsøger med
kat_id LIKE '%1%', men kan godt forstå det ikke virker da den også henter hvor kat_id indeholder 11 og 14.

Nogen som ved hvordan jeg kan gøre dette?
Avatar billede keysersoze Ekspert
09. april 2011 - 15:51 #1
Hvis du har mulighed for det vil jeg klart anbefale dig at ændre din databasestruktur da det du har nu på ingen måde er standard og kun vil give bøvl som bla det du er ude i nu - i stedet for din kat_id bør du have en mange-til-mange relationstabel mellem kategori og tekst.
09. april 2011 - 15:52 #2
Hvor har du tabellen med tekster og kategorier?  I en mysql database?  I saafald foreslaar jeg  at du proever med kat_id = 1 (hvis datatypen for kategori er INT, ellers kat_id = '1').
09. april 2011 - 15:59 #3
keysersoze, vores indlaeg krydsede.  Jeg havde overset det med at en tekst kan have flere kategorier, men nu hvor jeg ser det er jeg enig med dig.

Michaeltryl, forslag:

tre tabeller:

Tekst
id, tekst
1, 'Der kom en soldat gaaende hen ad landevenen'
2, 'Der var engang en mand, han boede i en spand'

Kategori
id, beskrivelse
1, 'Vittigheder'
2, 'Nyheder'
3, 'Kaerestebreve'

Tekst_Kategori
1
id, tekst_id, kategori_id
1        1        2
2        1        3
3        2        3

Altsaa tekst 1 tilhoerer baade kategori 2 og 3; tekst2 tilhoerer kun kategori 3; der er ingen tekster i kategori 1

Saa faar du alle tekster i kategori1 saaledes:

SELECT tekst FROM Tekst JOIN Tekst_Kategori ON  Tekst.id = Tekst_Kategori.tekst_id WHERE tekst_id = 1
09. april 2011 - 16:00 #4
Rettelse:

Tekst_Kategori
id, tekst_id, kategori_id
1        1        2
2        1        3
3        2        3
Avatar billede michaeltryl Seniormester
09. april 2011 - 16:05 #5
havde tænkt på at gøre det som i forslå, men troede det andet var bedre. jeg vil straks gøre som i forslår.
tak for hjælpen.
vil godt dele point mellem jer, da i var næsten lige hurtige.
Avatar billede keysersoze Ekspert
09. april 2011 - 16:07 #6
Det er i relativt få tilfælde det kan betale sig ikke at holde sig til normalformerne - og selvom det sagtens kan lade sig gøre at løse som du har det nu vil det langt fra være optimalt.
09. april 2011 - 17:00 #7
Svar fra mig.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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