Mysql
 sql >> Base de données >  >> RDS >> Mysql

Effectuer une comparaison LIKE sur un champ INT

Vous pouvez CAST le champ en une chaîne :

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

c'est très mauvais pour les performances, car mySQL ne peut pas utiliser les index qu'il a créés pour la colonne INT. Mais alors, LIKE est toujours lent, même lorsqu'il est effectué sur un champ varchar :il n'y a aucun moyen d'avoir un index qui accélère une requête LIKE.

Cela pourrait valoir la peine d'avoir un deuxième varchar colonne qui reflète le int les valeurs de la colonne et faire le LIKE sur celle-ci - vous devrez comparer pour savoir si cela fera du bien.