Mysql
 sql >> Database >  >> RDS >> Mysql

Ordinamento delle query di unione in MySQL

probabilmente scriverei la query simile a:

  select *, ((title like '%…%')*2 + (description like '%…%')) as rank
    from jobs
   where title like '%…%'
      or description like '%…%'
order by rank desc, time desc

in questo modo, appariranno prima le righe in cui sia il titolo che la descrizione corrispondono, quindi le corrispondenze dei titoli, quindi le corrispondenze delle descrizioni. non l'ho testato, ma di solito mysql fa un buon lavoro convertendo bool in int (true:1, false:0)