Avatar billede finesmecker Nybegynder
24. juni 2009 - 15:01 Der er 4 kommentarer og
1 løsning

match ord i flere tabeller

Hej eksperter

Jeg har to tabeller.

TABEL1:ID og Tekst
TABEL2:Tekst


Er det muligt at lave en query der viser følgende

1.    ID
2.    Score

Hvor score angiver hvor mange ord (ikke gengivelser) der matcher i tabel 1 tekst og tabel 2 tekst.

Eksempelvis

Tabel 1
ID 1 -  Tekst: hund mus kat kylling mus hund tog
ID 2 - Tekst: hund peter ole
ID 3 - Tekst: fisk hundemad

Tabel 2 Tekst: hund mus

Skal give:
ID 1 - Score: 2
ID 2 - Score: 1
ID 3 - Score: 0

Har i anden sammenhæng med et andet spg. Fået følgende mulighed fra en venlig sjæl:

SELECT tt.*, COUNT(ord) as antal FROM tabel as tt
LEFT JOIN ordtabel AS to ON IF (LOCATE(to.ord, tt.tekst) > 0, TRUE, FALSE)
GROUP BY id

Den virker egentlig okay dog er der følgende problemer:

Hvis der ikke er ord der matcher giver den 1point og ikke 0. Så kan ikke gennemskue om den har ramt 1 ord eller ingen

Den leder også i hele ord - f.eks hund rammer hundemad.

Nogle der forstod :) som kan måske hjælpe...
Avatar billede arne_v Ekspert
25. juni 2009 - 02:27 #1
Hvis du bruger COUNT(felt fra højre side tabellen) så bør du kunne få 0.
Avatar billede arne_v Ekspert
25. juni 2009 - 02:29 #2
LOCATE(CONCAT(' ',to.ord,' '), CONCAT(' ',tt.tekst,' '))

vil virke hvis mellemrum er eneste ord separator.
Avatar billede arne_v Ekspert
04. august 2009 - 03:26 #3
?
Avatar billede finesmecker Nybegynder
14. december 2009 - 10:59 #4
Hej Arne - Jeg fatter ikke hvad der er sket med dette spg. Beklager

Takker mange gange kan du lægge svar
Avatar billede arne_v Ekspert
14. december 2009 - 15:02 #5
kommer her
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