ciao a tutti
avrei bisogno di un consiglio su come impostare una query in mysql

E' una query di ricerca con "match against" e non solo.
Io dovrò con questa query dare un valore di "score" per ogni record. E fin qui tutto bene tranne il fatto che la query altre allo score generato da "match against" dovrà definire il valore di score con un'altra 20ina di condizioni

Adesso come sto facendo

1) recupero il valore dello score dalla query principale con match/against
2) creo una tabella temporanea
3) con un ciclo passo tutti i risultati del db e con degli if else aumento o diminuisco il valore dello score
4) inserisco nella tabella temporanea lo score formato da score-match/against+score-if/else per ogni record
5) faccio una nuova query sulla tabella temporanea per ricavarmi i valori con lo score completo
6) cancello la tabella temporanea

IL PROBLEMA:
In questa fase su circa 2000 record la query match-against usa 0,2 sec circa, ma 8 secondi vengono usati per il ciclo

POSSIBILE SOLUZIONE
subquery .... ci ho provato ma le condizioni richiedono di valorizzare una variabile score aumentandola o dimunuendola e quindi mi sembra la via meno adatta

Quindi vi chiedo non c'è modo di usare una propria funzione php direttamente dentro una query in maniera da evitare il ciclo e quindi spero ridurre di molto il tempo di esecuzione


Scusate il messaggio lungo :-)
Grazie per l'aiuto a tutti