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

MySQL wybierz ciąg znaków UTF-8 z „=”, ale nie z „LIKE”

Po obejrzeniu odpowiedzi Marcusa Adamsa zdałem sobie sprawę, że funkcja REPLACE może być rozwiązaniem tego problemu, chociaż nie wspomniał o tej funkcji.

Ponieważ mam tylko dwa różne znaki łączące (ostry i tylda), połączone z innymi znakami ASCII, na przykład j z tyldą, j z ostrym, m z tyldą, s z tyldą i tak dalej. Muszę tylko zastąpić te dwa znaki, gdy używam LIKE.

Po przeszukaniu instrukcji dowiedziałem się o funkcji UNHEX, która pomogła mi prawidłowo przedstawić połączone znaki w zapytaniu, aby je usunąć.

Łącząca tylda jest reprezentowana przez CC83 w kodzie HEX, a ostry jest reprezentowany przez CC81 w HEX.

Tak więc zapytanie, które rozwiązuje mój problem, to właśnie to.

SELECT word, REPLACE(REPLACE(word, UNHEX("CC83"), ""), UNHEX("CC81"), "")
FROM oldword WHERE REPLACE(REPLACE(word, UNHEX("CC83"), ""), UNHEX("CC81"), "") 
LIKE 'hua%';`


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dołącz do ramek danych pandy na podstawie wartości kolumn

  2. Ochrona przed wstrzykiwaniem SQL za pomocą tylko str_replace

  3. tylko schemat mysqldump, aktualizacja schematu bez upuszczania

  4. Jak podłączyć aplikację na Androida do bazy danych MySQL?

  5. MySQL przestaje używać indeksu po dodaniu dodatkowych ograniczeń