podría lograr esto en una consulta usando 'UNION ALL' en MySQL.
Simplemente recorra los tokens en PHP creando UNION ALL para cada token:
por ejemplo, si los tokens son 'x', 'y' y 'z', su consulta puede verse así
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 cláusula de orden debe operar en todo el conjunto de resultados como uno solo, que es lo que necesita.
En términos de rendimiento, no será tan rápido (supongo), sin embargo, con las bases de datos, la principal sobrecarga en términos de velocidad a menudo es enviar la consulta al motor de la base de datos desde PHP y recibir los resultados. Con esta técnica, esto solo sucede una vez en lugar de una vez por token, por lo que el rendimiento aumentará, pero no sé si será suficiente.