Gå til innhold

Fulltekstsøk i mySQL: Søke på deler av ord


Anbefalte innlegg

Jeg kjører følgende spørring mot min mySQL-database:

 

SELECT * FROM `table` WHERE MATCH (`address`,`description`,`tags`,`title`)
AGAINST('+computer' IN BOOLEAN MODE)

 

Jeg får kun opp rader som matcher 'computer' og ikke for eksempel 'computers'. Hvordan omformulerer jeg spørringen så den også søker på deler av ord?

Lenke til kommentar
Videoannonse
Annonse

Du kan prøve med %-tegn:

SELECT * FROM tabellnavn WHERE kolonne='%streng'

Dette gir deg alle treff der kolonnen inneholder ord som slutter med 'streng'

Tilsvarende kan du bruke

SELECT * FROM tabellnavn WHERE kolonne='streng%'

som gir deg alle treff der kolonnen slutter med 'streng', og

SELECT * FROM tabellnavn WHERE kolonne='%streng%'

som gir deg alle treff der kolonnen inneholder 'streng'.

 

Jeg vet ikke om dette fungerer med match() against(), men jeg kan ikke se noen grunn til at det ikke skal gjøre det.

Lenke til kommentar

Wildcard i fulltext search er vel * så langt jeg kan se.

 

Første treff her:

http://www.google.no/search?hl=no&q=sq...ainst&meta=

 

Gir:

http://www.informit.com/articles/article.a...75&seqNum=9

 

Som forklarer syntaxen i fulltext search. Det er lov å bruke google.

 

Mao:

SELECT * FROM `table` WHERE MATCH (`address`,`description`,`tags`,`title`)
AGAINST('+computer*' IN BOOLEAN MODE)

Endret av Manfred
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...