Avatar billede mickeynt Nybegynder
13. januar 2005 - 13:32 Der er 6 kommentarer og
1 løsning

Lille LIKE-problem

Hej,

Jeg har lige et problem her med LIKE, jokertegn og JOIN i min forespøgsel.

Jeg har to tabeller: "Genrer" og "Info".

I min Genrer-tabel står listet nogle musikgenrer, eks.

Jazz
Rock
Heavy
Klassisk
Punk
Funk
Techno
Dance
Soul

I min Info-tabel er der nogle bruger-info, og hver bruger har en liste med genrer, separeret af komma hvis der er flere. Eks.:

Bruger 1: Dance, Techno, Rock
Bruger 2: Punk, Soul
Bruger 3: Klassisk
Bruger 4: Techno
Bruger 5: Heavy, Jazz, Rock, Soul

Det jeg vil have min forespørgsel til, er at udvælge de genrer fra min "Genrer"-tabel som på en eller anden måde indgår i en af brugernes lister.

Jeg har lavet denne forespørgsel:

SELECT DISTINCT Genrer.Genrer_navne
FROM Genrer INNER JOIN Info ON Genrer.Genrer_navne LIKE Info.Genrer_liste;

Men det jeg får ud af den, er kun:

Klassisk
Techno

- Da der ikke bliver søgt inde i de kommaseparerede lister, kun specifikt på et genrer navn. Hvordan ordner jeg det med joker-tegn eller lign., sådan at der gerne skulle komme en genre-liste uden - i dette tilfælde - Funk, da denne genre ikke befinder sig i nogen af brugernes lister?

Jeg håber I kan forstå :-)
Avatar billede jensen363 Forsker
13. januar 2005 - 13:36 #1
Du kan forsøge med In()
Avatar billede anhansen Nybegynder
13. januar 2005 - 13:43 #2
Hvad hvis du skriver :
SELECT DISTINCT Genrer.Genrer_navne
FROM Genrer INNER JOIN Info ON Info.Genrer_liste LIKE '%'+Genrer.Genrer_navne+'%'
Avatar billede mickeynt Nybegynder
13. januar 2005 - 13:43 #3
Hvorhenne i forspørgslen? IN (Info.Genrer_liste); til sidst giver fejl
Avatar billede mickeynt Nybegynder
13. januar 2005 - 13:53 #4
anhansen ->> Super! Det viker med LIKE '*'+Genrer.Genrer_navne+'*' til sidst i stedet for %.

Hmm.. kan bare ikke helt forstå hvad der var galt med den måde jeg havde joinet den på?
Avatar billede anhansen Nybegynder
13. januar 2005 - 13:56 #5
Jeg tror fejlen er at du har skrevet :
hvor "dance, techno, rock" er i "rock"
Jeg leder efter dem hvor "rock" er i "dance, techno, rock".

Jokertegnene % gør at der kan være vilkårligt mange tegn foran og bagefter.

Men godt det virker.
Avatar billede mickeynt Nybegynder
13. januar 2005 - 13:59 #6
Nå okay.. Kan godt se det nu. Du skal have mange tak for den hurtige hjælp! :-)
Avatar billede anhansen Nybegynder
13. januar 2005 - 14:00 #7
det er jo det det går ud 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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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