Ich würde wahrscheinlich die Abfrage ähnlich schreiben:
select *, ((title like '%…%')*2 + (description like '%…%')) as rank
from jobs
where title like '%…%'
or description like '%…%'
order by rank desc, time desc
Auf diese Weise werden Zeilen, in denen sowohl Titel als auch Beschreibung übereinstimmen, zuerst angezeigt, dann Titel-Übereinstimmungen und dann Beschreibungs-Übereinstimmungen. Ich habe es nicht getestet, aber normalerweise leistet mysql gute Arbeit beim Konvertieren von bool in int (true:1, false:0)