sql >> Database teknologi >  >> RDS >> Mysql

Hvordan gør man MySQL opmærksom på multi-byte tegn i LIKE og REGEXP?

REDIGERT for at inkorporere rettelse til gyldig kritik

Brug HEX() funktion til at gengive dine bytes til hexadecimal og derefter brug RLIKE på det, for eksempel:

select * from mytable where hex(ipa) rlike concat('(..)*', hex('needle'), '(..)*'); -- looking for 'needle' in haystack, but maintaining hex-pair alignment.

De ulige unicode-tegn gengives konsekvent til deres hex-værdier, så du søger efter standard 0-9A-F-tegn.

Dette virker også for "normale" kolonner, du har bare ikke brug for det.

p.s. @Kierens (gyldige) punkt adresseret ved hjælp af rlike for at håndhæve char-par



  1. Skift adgangskoden til et SQL Server-login

  2. FEJL 1049 (42000):Ukendt database 'mitdatabasenavn'

  3. vise data fra databasen til html-tabel

  4. Lagring af forretningslogik i databasen