I have a Mysql InnoDB table with 10k keywords and I want to match them against several texts.
Some keywords have several words and I only want exact matchs.
Example:
Keywords - brown fox, lazy cat, dog, fox, rabbit
Text - The quick brown fox jumps over the lazy dog
I want the query to return - brown fox, dog, fox
SELECT * FROM tenKTable
WHERE 'The quick brown fox jumps over the lazy dog' LIKE CONCAT('%',keyword,'%')
Source: MySQL SELECT query string matching
Here's one idea:
SELECT keyword
FROM Keywords
JOIN (SELECT 'The quick brown fox jumps over the lazy dog' as col) k
on k.col like Concat('%',keywords.keyword,'%')
And the SQL Fiddle.
Good luck.