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

Provedení porovnání LIKE na poli INT

Můžete CAST pole na řetězec:

 ... WHERE CAST(ProductID as CHAR) LIKE '%15%'

to je velmi špatné pro výkon, protože mySQL nemůže použít žádné indexy, které jsou vytvořeny pro sloupec INT. Pak ale LIKE je vždy pomalé, i když se provádí na poli varchar:Neexistuje způsob, jak mít index, který urychluje dotaz LIKE.

Možná by stálo za to mít druhý varchar sloupec, který zrcadlí int hodnoty sloupce a provedení LIKE na tomto sloupci – budete muset provést benchmark, abyste zjistili, zda to bude k něčemu dobré.



  1. MariaDB Jednotky data a času

  2. Jak sloučit dvě databáze se stejnými daty, ale s různými PK, bez duplicitních polí?

  3. mysql kombinuje výsledky dotazů vedle sebe

  4. Co je LEN() v SQL Server?