Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql SORT BY quantidade de correspondências de palavras únicas


Você pode fazer isso de várias maneiras, por exemplo
ORDER BY SIGN(LOCATE('dog',content))+
         SIGN(LOCATE('swim',content))+
         SIGN(LOCATE('better',content)) DESC

Demonstração do SQLFiddle

ou com 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