Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql SORT BY quantité de correspondances de mots uniques

Vous pouvez le faire de plusieurs façons par exemple

ORDER BY SIGN(LOCATE('dog',content))+
         SIGN(LOCATE('swim',content))+
         SIGN(LOCATE('better',content)) DESC

Démo SQLFiddle

ou avec CASE

ORDER BY 
CASE WHEN content LIKE '%dog%' 
        THEN 1
        ELSE 0
END
+
CASE WHEN content LIKE '%swim%' 
        THEN 1
        ELSE 0
END
+
CASE WHEN content LIKE '%better%' 
        THEN 1
        ELSE 0
END

DESC