Mysql
 sql >> база данни >  >> RDS >> Mysql

Получавам двойни резултати от mysql заявка, когато използвам международни знаци, т.е. Å/Ä=A &Ö=O,

Вашият "проблем" е utf8_unicode_ci съпоставяне. Това съпоставяне прави "разширения на знаци", което означава, че Umlauts и техните основни знаци се третират като едни и същи дори в = сравнение :

A = Ä
O = Ö
...

Вторият пример на тази страница с ръководство на mySQL обяснява проблема:9.1.7.8. Примери за ефекта от съпоставянето

Това, което трябва да направите, е или да преминете към съпоставяне, което прави разлика между умлаут и основен знак (напр. utf8_general_ci или utf8_general_bin ) или превключете към друго съпоставяне само когато правите сравнение:

select * from users where username like 'Björn' COLLATE utf8_general_ci;

това очевидно е по-бавно, тъй като преобразуването на съпоставянето трябва да се извърши за всеки запис по време на заявката.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвате тригер в MySql, за да направите външен ключ

  2. Как да съхранявате речника на python в mysql DB чрез python

  3. JSON_MERGE_PATCH() срещу JSON_MERGE_PRESERVE() в MySQL:Каква е разликата?

  4. Изпълнете необработена заявка на MySQL Loopback Connector

  5. Показва само най-новата дата от присъединена MySQL таблица