sql >> Databasteknik >  >> RDS >> Mysql

mysql SORTERA EFTER antal unika ordmatchningar

Du kan göra det på många sätt till exempel

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

SQLFiddle-demo

eller med 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


  1. SQL:sök/ersätt men bara första gången ett värde visas i posten

  2. SpringBoot MySQL JDBC Det går inte att skapa initiala anslutningar av pool

  3. 3 sätt att returnera rader som innehåller alfanumeriska tecken i SQL Server

  4. Jokertecken i kolumnnamnet för MySQL