sql >> Database >  >> RDS >> Mysql

Een LIKE-vergelijking uitvoeren op een INT-veld

U kunt CAST het veld naar een string:

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

dit is erg slecht voor de prestaties, omdat mySQL geen gebruik kan maken van indexen die het voor de INT-kolom heeft gemaakt. Maar dan, LIKE is altijd traag, zelfs als het wordt gedaan op een varchar-veld:er is geen manier om een ​​index te hebben die een LIKE-query versnelt.

Het is misschien de moeite waard om een ​​tweede varchar . te hebben kolom die de int . weerspiegelt kolomwaarden en doe de LIKE op die - je zou moeten benchmarken om erachter te komen of het enig goed zal doen.



  1. percentiel door COUNT(DISTINCT) met gecorreleerd WHERE werkt alleen met een weergave (of zonder DISTINCT)

  2. PHP MySQL-query met trefwoorden/gereserveerde woorden

  3. Fix "ERROR 1054 (42S22):Onbekende kolom '...' in 'on-clausule' in MariaDB

  4. Datumlijst in een bereik krijgen in PostgreSQL