sql >> Databasteknik >  >> RDS >> Mysql

Utföra en LIKE-jämförelse på ett INT-fält

Du kan CAST fältet till en sträng:

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

detta är mycket dåligt för prestanda, eftersom mySQL inte kan använda några index som det har skapat för INT-kolumnen. Men sedan, LIKE är alltid långsam, även när den görs på ett varchar-fält:Det finns inget sätt att ha ett index som snabbar upp en LIKE-fråga.

Det kan vara värt att ha en andra varchar kolumn som speglar int kolumns värden och göra LIKE på den - du måste jämföra för att ta reda på om det kommer att göra någon nytta.



  1. Lära 2 lägg till ett nytt fält som automatiskt genererar sekvensvärden

  2. UPPDATERA med SUM() i MySQL

  3. LOBBEHÅLLNING

  4. Hur man stoppar en pågående mysql-fråga