nixp.ru v3.0

19 октября 2017,
четверг,
12:09:35 MSK

DevOps с компанией «Флант»
Dreid написал 4 октября 2004 года в 16:42 (263 просмотра) Ведет себя как мужчина; открыл 7 тем в форуме, оставил 151 комментарий на сайте.

Загадочный вопрос:

только ли у меня MySql считает, что буквы а,б,А и Б — суть одно?

В смысле, вот так:

mysql> create table test (name varchar(255));

Query OK, 0 rows affected (0.01 sec)

mysql> insert into test values(’б’);

Query OK, 1 row affected (0.00 sec)

mysql> insert into test values(’а’);

Query OK, 1 row affected (0.00 sec)

mysql> select * from test where name=’Б’;

+——--+

| name |

+——--+

| б |

| а |

+——--+

2 rows in set (0.00 sec)

Что я не так делаю?

Master

charset в конфиге mysql стоит правильный?

Dreid

Угу. upper/lower тоже работают нормально.

Кстати, проявляется и в 1251 и в KOI8.

Uncle Theodore

Все правильно, поля по дефолту не различают заглавных и строчных букв. Если хочешь case-sensitive поля, используй киворд BINARY на столбцах.

Good Luck,

UT

Uncle Theodore

Т.е. поиск не различает, поля-то отображаются всегда правильно…

Good Luck,

UT

create table test (name varchar(255) binary not null);

Dreid

Так это-то меня не пугает, меня пугает то, что а=б.

Dreid

PS: про binary я знаю, но это мне не подходит как раз из-за upper/lower :(

Uncle Theodore

Сорри, не просек сразу… У меня она вообще на русских пукфах крестики рисует… :-) Может, Юникоду попробовать?

Good Luck,

UT

Dreid

Видимо, придется. Хотя я опять-таки не уверен, что это поможет :(

Причем все остальные буквы исправно считаются разными, проблема только в АБ.