That Guy
Meubilair
- Lid geworden
- 28 nov 2006
- Berichten
- 5.010
Hoi allemaal,
ik heb een database met zo ongeveer deze opzet:
en een FULLTEXT(artist, title, album).
Nu wil ik dus door deze data een zoekendus had ik eerst zoiets:
waar $searchq de string is van de zoekopdracht. Nu is dit dus een beetje onhandig, dus na wat zoeken kwam ik uit op het hele FULLTEXT-gedoe. Nu is mn query dit:
maar dit geeft nogsteeds niet echt de optimale zoekresultaten terug; als ik bijvoorbeeld zoek op "shine", wil ik niet alleen het nummer 'The Golden Shine' krijgen (die krijg ik dus), maar ook de artiest 'Shinedown' (die krijg ik dus niet).
Weet iemand hoe ik dit het beste kan oplossen? Basic sql lukt me wel, maar dit hele match-against gedoe is nieuw voor me.
Alvast bedankt! :thumb:
ik heb een database met zo ongeveer deze opzet:
Code:
id (int11)
artist (text)
title (text)
album (text)
track (int11)
Nu wil ik dus door deze data een zoekendus had ik eerst zoiets:
Code:
SELECT *
FROM songs
WHERE artist LIKE '%" . $searchq . "%' OR title LIKE '%" . $searchq . "%' OR album LIKE '%" . $searchq . "%'
ORDER BY artist, album, track, title ASC
Code:
SELECT id, title, artist, album, track, MATCH(title, artist, album) AGAINST ('%" . $searchq . "%') as relevancy
FROM songs
WHERE MATCH(title, artist, album) AGAINST ('%" . $searchq . "%')
ORDER BY relevancy DESC, artist ASC
Weet iemand hoe ik dit het beste kan oplossen? Basic sql lukt me wel, maar dit hele match-against gedoe is nieuw voor me.
Alvast bedankt! :thumb:
Laatst bewerkt: