potresti ottenerlo in una query usando "UNION ALL" in MySQL.
Basta scorrere i token in PHP creando un UNION ALL per ogni token:
ad esempio, se i token sono "x", "y" e "z", la tua query potrebbe essere simile a questa
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...
La clausola dell'ordine dovrebbe operare sull'intero set di risultati come uno, che è ciò di cui hai bisogno.
In termini di prestazioni non sarà poi così veloce (suppongo), tuttavia con i database l'overhead principale in termini di velocità è spesso l'invio della query al motore di database da PHP e la ricezione dei risultati. Con questa tecnica questo accade solo una volta invece di una volta per token, quindi le prestazioni aumenteranno, semplicemente non so se sarà sufficiente.