I wanted to get some opionions on the best way to search for text in mysql. I have seen a lot of people using LIKE but this doesn't really do the job properly.
I would add a full text index to the field i wish to search on, for example book_title. Maybe I want to search for books that are closest match to "The Big Game":
SELECT *, MATCH(B.`book_title`) AGAINST('+The Big Game', IN BOOLEAN MODE ) AS RelevanceScore FROM `books` B WHERE ( MATCH(B.`book_title`) AGAINST ('+The Big Game', IN BOOLEAN MODE) || B.`book_title` LIKE '%The Big Game%' ) HAVING(RelevanceScore > 0) ORDER BY RelevanceScore DESC LIMIT 0,10