If you do not use InnoDB (which I'd usually recommend using since it can be ACID compliant) and instead set the table to be of MyISAM type (which isn't ACID compliant), you can create a full text index on the VARCHAR / TEXT field and use something like
SELECT field1, field2, MATCH(somefield, optionally_more_fields) AGAINST('word1 word2 word3' IN NATURAL LANGUAGE MODE) AS relevance
FROM tables
WHERE MATCH(somefield, optionally_more_fields) AGAINST('word1 word2 word3' IN NATURAL LANGUAGE MODE)
ORDER BY relevance DESC
But if you want to stick to InnoDB table type, you'd have to use an external indexing mechanism such as Sphinx, or just retrieve the results using like=... and then post process those results yourself in php. Sphinx is (supposedly) faster than MySQL's full text indexing though, from what I've heard.
You could of course also use some other DBMS that is both ACID compliant and supports full text indexing, such as PostgreSQL.
A note on InnoDB's ACID compliance: It is only ACID compliant as long as you don't use triggers, since MySQL doesn't execute triggers on cascading foreign keys, which could result in data being inconsistent. See mysql 5.5, create trigger
Note
Currently, cascaded foreign key actions do not activate triggers.