В чем разница _bin, _general_ci, _general_cs, _ukrainian_ci?

M
На сайте с 20.08.2004
Offline
376
785

cp1251_bin, cp1251_general_ci, cp1251_general_cs, cp1251_ukrainian_ci

у utf8 еще больше

перечислю основные

utf8_bin, utf8_general_ci, utf8_unicode_ci?

что выбрать и на что это влияет?

спасибо

отец сыночка, лапочки дочки и еще одного сыночка
N
На сайте с 06.05.2007
Offline
419
#1

это collation - правила сравнения.

_ci - case insensitive , регистронезависимое.

_cs - case sensitive, регистрозависимое

_bin - binary, двоичное, то есть сравниваются отдельные символы как последовательности байт.

_general для utf8 показывает, что правильно сравниваются только основные символы, а во всяких там редких алфавитах может не работать правильно. русский - не редкий.

выбирай согласно задаче.

Кнопка вызова админа ()
grey109
На сайте с 15.06.2005
Offline
180
#2

Если в двух словах:

*_bin - вообще не советовал бы использовать без особой нужны.

_cs - регистрозависимая кодировка, поиск будет работать не совсем корректно.

_ci - регистронезивисимая

Я бы посоветовал использовать как более универсальную utf8_general_ci или utf8_unicode_ci. Первая быстрее второй, но поиск/сортировка работает не совсем точно, например ё и е считает одним и тем же символом. Вторая помедленнее, нет проблем с сортировкой при поиске и подходит для всех языков.

M
На сайте с 20.08.2004
Offline
376
#3

Спасибо друзья, стало понятно!

---------- Добавлено 23.01.2012 в 22:30 ----------

netwind, как всегда не могу нажать кнопку плюс )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий