Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak sprawić, by MySQL rozpoznawał znaki wielobajtowe w LIKE i REGEXP?

ZMIENIONO w celu uwzględnienia poprawki do prawidłowej krytyki

Użyj HEX() funkcja renderowania bajtów do postaci szesnastkowej i następnie użyj RLIKE na tym, na przykład:

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

Nieparzyste znaki Unicode renderują się konsekwentnie do ich wartości szesnastkowych, więc przeszukujesz standardowe znaki 0-9A-F.

Działa to również w przypadku „normalnych” kolumn, po prostu tego nie potrzebujesz.

p.s. Punkt @Kieren (prawidłowy) zaadresowany za pomocą rlike aby wymusić stosowanie par znaków



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Wyszukiwanie wielu danych wejściowych

  2. jak dodać plik jar sterownika mysql w zaćmieniu?

  3. wybrani użytkownicy mają więcej niż jeden odrębny rekord w mysql

  4. python pymysql.err.OperationalError:(2013, „Utracono połączenie z serwerem MySQL podczas zapytania”)

  5. Właściwy sposób na uzyskanie nazwy użytkownika i hasła z ciągu połączenia?