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

Funkcja wyszukiwania z greckimi znakami w MySQL

Jeśli możesz zmienić zestaw znaków swojej kolumny (lub tabeli), ustaw go na utf8_general_ci (link do instrukcji ):

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;

Z tym zestawem znaków (który nie uwzględnia wielkości liter, co oznacza _ci ), znaki akcentowane mają tę samą wagę (wartość używana dla zestawienie ), więc zwracają prawdę przy porównaniu ze sobą (link do instrukcji ):

mysql> SET NAMES 'utf8' COLLATE 'utf8_general_ci';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT 'a' = 'A', 'a' = 'À', 'a' = 'á';
+-----------+-----------+-----------+
| 'a' = 'A' | 'a' = 'À' | 'a' = 'á' |
+-----------+-----------+-----------+
|         1 |         1 |         1 |
+-----------+-----------+-----------+
1 row in set (0.06 sec)

Alternatywnie, lub jeśli nie możesz zmienić konfiguracji bazy danych w ten sposób, możesz napisać funkcję zastępującą znaki akcentowane ich nieakcentowanymi odpowiednikami (np. é -> e ) i zapisz to w dedykowanym polu wyszukiwania (pełny wyszukiwanie tekstowe pole jest zalecane). Przeprowadź wyszukiwanie w tym polu i zwróć akcentowane pole do aplikacji.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skip and Take nie działa z MySQL EntityFrameworkCore

  2. Chcę dodać 30 dni do wiersza daty mysql

  3. Dopasowywanie rekordów z dwóch tabel

  4. JPA Hibernate - kaskadowe usuwanie zarówno w bazie danych, jak i adnotacji

  5. Czy występuje buforowanie MySQL, jak to naprawić?