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

MySQL match() contro() - ordine per rilevanza e colonna?

Questo potrebbe dai la maggiore rilevanza alla parte della testa che desideri. Non lo raddoppierà, ma potrebbe essere abbastanza buono per il tuo bene:

SELECT pages.*,
       MATCH (head, body) AGAINST ('some words') AS relevance,
       MATCH (head) AGAINST ('some words') AS title_relevance
FROM pages
WHERE MATCH (head, body) AGAINST ('some words')
ORDER BY title_relevance DESC, relevance DESC

-- alternatively:
ORDER BY title_relevance + relevance DESC

Un'alternativa che vuoi anche esaminare, se hai la flessibilità di cambiare motore DB, è Postgres . Permette di impostare il peso degli operatori e di giocare con la classifica.