Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Durchführen eines LIKE-Vergleichs für ein INT-Feld

Sie können CAST das Feld in einen String:

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

Dies ist sehr schlecht für die Leistung, da mySQL keine Indizes verwenden kann, die es für die INT-Spalte erstellt hat. Aber dann LIKE ist immer langsam, selbst wenn es auf einem varchar-Feld ausgeführt wird:Es gibt keine Möglichkeit, einen Index zu haben, der eine LIKE-Abfrage beschleunigt.

Es könnte sich lohnen, einen zweiten varchar zu haben Spalte, die int widerspiegelt -Spaltenwerte und das LIKE für diese - Sie müssten einen Benchmark durchführen, um herauszufinden, ob es etwas bringt.