je zou dit in één query kunnen bereiken met 'UNION ALL' in MySQL.
Loop gewoon door de tokens in PHP en maak een UNION ALL voor elke token:
als de tokens bijvoorbeeld 'x', 'y' en 'z' zijn, kan uw zoekopdracht er ongeveer zo uitzien
SELECT * FROM `entries`
WHERE token like "%x%" union all
SELECT * FROM `entries`
WHERE token like "%y%" union all
SELECT * FROM `entries`
WHERE token like "%z%" ORDER BY score ect...
De bestelclausule zou op de hele resultaatset als één moeten werken, en dat is wat je nodig hebt.
In termen van prestaties zal het niet zo snel zijn (denk ik), maar met databases is de belangrijkste overhead in termen van snelheid vaak het verzenden van de query naar de database-engine vanuit PHP en het ontvangen van de resultaten. Met deze techniek gebeurt dit maar één keer in plaats van één keer per token, dus de prestaties zullen toenemen, ik weet alleen niet of het genoeg zal zijn.