du kan uppnå detta i en fråga med 'UNION ALL' i MySQL.
Gå bara igenom tokens i PHP och skapa en UNION ALL för varje token:
t.ex. om tokens är 'x', 'y' och 'z' kan din fråga se ut ungefär så här
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...
Ordningssatsen bör fungera på hela resultatuppsättningen som en, vilket är vad du behöver.
När det gäller prestanda kommer det inte att gå så snabbt (gissar jag), men med databaser är den huvudsakliga overheaden när det gäller hastighet ofta att skicka frågan till databasmotorn från PHP och ta emot resultaten. Med den här tekniken händer detta bara en gång istället för en gång per token, så prestandan kommer att öka, jag vet bara inte om det kommer att räcka.