sql >> Databáze >  >> RDS >> Mysql

MySQL match() against() - pořadí podle relevance a sloupce?

Toto může dejte větší význam části hlavy, kterou chcete. Nezdvojnásobí to, ale pro vaše dobro by to mohlo být dost dobré:

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

Alternativou, kterou chcete také prozkoumat, pokud máte flexibilitu přepnout DB engine, je Postgres . Umožňuje nastavit váhu operátorů a pohrát si s hodnocením.



  1. Jak napsat dotaz, který dělá něco podobného jako GROUP_CONCAT MySQL v Oracle?

  2. SQL select where not in subdotaz nevrací žádné výsledky

  3. Názvy sloupců nabídek Oracle DB

  4. Přejmenování uživatelem definovaného datového typu v SQL Server (T-SQL)