você pode conseguir isso em uma consulta usando 'UNION ALL' no MySQL.
Basta percorrer os tokens em PHP criando um UNION ALL para cada token:
por exemplo, se os tokens forem 'x', 'y' e 'z' sua consulta pode ser algo assim
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...
A cláusula de ordem deve operar em todo o conjunto de resultados como um, que é o que você precisa.
Em termos de desempenho, não será tão rápido (suponho), no entanto, com bancos de dados, a principal sobrecarga em termos de velocidade geralmente é enviar a consulta para o mecanismo de banco de dados do PHP e receber os resultados. Com essa técnica isso só acontece uma vez ao invés de uma vez por token, então o desempenho vai aumentar, só não sei se será suficiente.