Сопоставление в MySQL - PullRequest
       12

Сопоставление в MySQL

1 голос
/ 04 мая 2011

Независимо от того, одинаковы ли Collate Latin1_General_CS_AS и Collate utf8_bin, они отличаются друг от друга: первый - для набора символов Latin1, а второй - для набора символов utf8, но я хотел знать, будут ли оба варианта соответствовать чувствительному к регистру и чувствительному к Accent.

На самом деле, сейчас я перенес свою базу данных с sql server2000 на MySQL 5.2, и у меня есть поле пароля, которое я хочу сравнить с чувствительным к регистру и чувствительным к Accent на сервере sql, что Collate Latin1_General_CS_AS работает нормально, но я хочу знать, Collate utf8_bin это замена для этого в MySQL или есть другие лучшие способы добиться того же.

1 Ответ

2 голосов
/ 04 мая 2011

Я не знаю SQL-сервера и сопоставления, о котором вы упомянули, но utf8_bin, будучи двоичным сопоставлением , действительно чувствителен к регистру и акценту.

Вам не обязательно иметь всю базу данных в этом сопоставлении - двоичные сопоставления не очень хороши при сортировке . Вы можете принудительно выполнить двоичное сравнение в недвоичной сортировке (например, utf8_general_ci), используя ключевое слово COLLATE :

SELECT column FROM table WHERE password COLLATE utf8_bin = "abcäöü"; 
...