Avatar billede mantichora Nybegynder
22. februar 2008 - 18:40 Der er 2 kommentarer og
1 løsning

Søgning: alle ord skal matche, rækkefølge ligegyldig

Jeg er en klovn til SQL, så here goes:

Hvordan laver jeg nemmest en simpel site-søgemaskine?
Den skal finde alt hvor alle de angivne ord findes, men rækkefølgen af ordene er ligegyldig.

Lige nu har jeg noget i stil med
SELECT WHERE title LIKE '%$search%'
- hvilket virker fint, borset fra at rækkefølgen skal passe med det indtastede, hvilket jeg ikke vil have.

Bedre løsning?
Avatar billede pidgeot Nybegynder
22. februar 2008 - 23:35 #1
Avatar billede mantichora Nybegynder
24. februar 2008 - 12:01 #2
Yes, perfekt.

Jeg har nu:
"select id, title from reviews where match(title) against('$term') and published=1 order by title asc limit 10"
Og den gør præcis hvad jeg vil have.

Mange tak :) Svar?
Avatar billede pidgeot Nybegynder
24. februar 2008 - 12:13 #3
Værsgo.

Overvej dog om du ikke bør droppe din ORDER BY, og så samtidigt SELECTe MATCH(title) AGAINST('$term') - så skulle det blive sorteret efter relevans, som vist på http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html :)
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