MySQL SELECT MATCH AGAINST

Tags:    mysql

Hej!
Jeg sidder og roder lidt med en database, som ser således ud:

Fold kodeboks ind/udSQL kode 


Mit problem er, at når jeg søger match against in boolean mode, opfører sql sig lidt underligt:

Fold kodeboks ind/udSQL kode 


Ovenstående returnerer 0 rækker, men jeg VED at der findes en række med ordet 'Vintermåne' (manuel søgning i phpmyadmin fortalte mig dette). Som fejltjek, kørte jeg samme kommando, men med 'Koontz' i stedet for 'Vintermåne'. Dette returnerede i 12 rækker, og ganske rigtigt indeholder 'katalog' 12 rækker med 'Koontz' i katalog_marc.

Er der noget, jeg ikke har fattet, som kan hjælpe mig her? :)



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
måske du kan løse det med CONVERT

Fold kodeboks ind/udSQL kode 


nu er jeg ik så super skrap til SQL så der findes sikkeret en eller anden måde at escape de på som jeg ikke lige kender til :)

men et bud, ved ik om det virker.



Ikke fordi jeg lige kan komme med en løsning, men kunne det være problemer med æ,ø og å ?



hvis det er, hvordan kommer jeg så udenom det?
den aktuelle post i "katalog" ser således ud:

Fold kodeboks ind/udSQL kode 




Indlæg senest redigeret d. 12.12.2011 20:45 af Bruger #16927
Jamen som sagt så har jeg ikke nogen reel løsning på dit problem :) Det var mere for at evt. rette lidt ind på hvor fejlen kunne ligge, har du evt. et andet ord du kan søge efter? Altså et med æ,ø eller å? Hvis det samme problem så dukker op så er det jo der den er gal :)



Jep! Har lige prøvet med 'dobbeltgænger' og det giver samme resultat, så det ser ud til, du har ret Esben... så er spørgsmålet bare: hvordan løser jeg det?



Fold kodeboks ind/udSQL kode 


- virker, men

Fold kodeboks ind/udSQL kode 


- virker ikke (læg mærke til, at jeg også blev nødt til at bruge wildcard *).

Jeg tænkte at det måske i virkeligheden handler om formatet som selve posten findes i (det er katalogiseringsformatet 'Marc2') - hvor bogtitlen står imellem nogle tokens:
'=245 00 *0*aVintermåne*bnogetandet*cnogettredje(...)'
Her er det felt 245, delfelt *a, som jeg leder efter, men det står ret op ad noget andet tekst, og bliver derfor tolket som ét ord?



Jeg ved ikke om du i din mysql database skal ændre tegn opsætning for det felt hvori du søger ?.. Ellers er en anden mulighed vel at behandle æ, ø og å inden du sætter dem ind i databasen og så på samme måde når du henholdsvis søger eller trækker data ud.. fx. lave noget replace inden du putter data i db. æ = ae osv ?



t