Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sortieren von Union-Abfragen in MySQL

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)