sql >> Databasteknik >  >> RDS >> Mysql

Mysql välj efter bästa matchning med like

Du kan enkelt sortera resultaten efter antalet matcher:

SELECT `id`
FROM `accounts`
WHERE AES_DECRYPT(`email`, '123') = CONCAT_WS('@', 'test', 'test.com') OR 
      AES_DECRYPT(`email`, '123') LIKE CONCAT('%','test.com')
ORDER BY ( (AES_DECRYPT(`email`, '123') = CONCAT_WS('@', 'test', 'test.com')) +
           (AES_DECRYPT(`email`, '123') LIKE CONCAT('%','test.com'))
         );

Detta kommer att fungera för ditt exempel.



  1. Masssamla in och kör omedelbart i Oracle

  2. Skulle detta ER-diagram istället använda ett ternärt samband

  3. Tabellnamnsdilemma:Singular vs. pluralnamn

  4. Resque Mysql2::Error:Användaren har överskridit resursen 'max_user_connections' (aktuellt värde:10)