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

Niewrażliwe na akcent zapytania w MySQL

Możesz zmienić sortowanie w czasie wykonywania w zapytaniu sql,

...where title like '%torun%' collate utf8_general_ci

ale uważaj, że zmiana sortowania w locie w czasie wykonywania eliminuje możliwość użycia indeksu przez mysql, więc wydajność na dużych tabelach może być straszna.

Możesz też skopiować kolumnę do innej kolumny, na przykład searchable_title , ale zmień na nim sortowanie. W rzeczywistości często robi się tego typu rzeczy, gdy kopiujesz dane, ale masz je w nieco innej formie, która jest zoptymalizowana pod kątem określonego obciążenia/celu. Możesz użyć wyzwalaczy jako dobrego sposobu na synchronizację zduplikowanych kolumn. Ta metoda może być skuteczna, jeśli zostanie zindeksowana.

Uwaga - Upewnij się, że twój db naprawdę zawiera te znaki, a nie elementy HTML. Również zestaw znaków twojego połączenia ma znaczenie. Powyższe zakłada, że ​​jest ustawiony na utf8, na przykład przez set nazwiska jak set names utf8

Jeśli nie, potrzebujesz wprowadzającego dla wartości dosłownej

...where title like _utf8'%torun%' collate utf8_general_ci

i oczywiście wartość w pojedynczych cudzysłowach musi być faktycznie zakodowana w utf8, nawet jeśli reszta zapytania sql nie jest.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lewy warunek ON ORAZ inna składnia warunków w Doctrine

  2. Formularz w PDO do aktualizacji danych

  3. Zaokrąglanie daty i godziny MYSQL do najwcześniejszego 15-minutowego interwału w milisekundach (PHP)

  4. mysql pełnotekstowy DOPASUJ, PRZECIW zwraca 0 wyników

  5. Dlaczego mysql max_allowed_packet resetuje się automatycznie do 1m?