Обнаружил на днях интересное свойство Mysql при сравнении строк с национальными символами в кодировке UTF-8. Вероятно ни для кого не секрет, что при использовании строковых установок COLLATE в mysql по умолчанию (например, utf8_general_ci), при сравнении ‘MyString’ равен ‘mystrinG’. Однако, mysql к тому же ещё и приводит национальные символы (типа латышских длинных) к латинице: ‘māte’ равен ‘MATE’. А это уже несколько не то, что ожидается, скажем, при авторизации пользователей.
Решением может быть использование COLLATE типа utf8_bin, правда при этом теряется регистронезависимость сравнений.
Posts Tagged ‘mysql’
Сравнение строк в Mysql
Thursday, May 28th, 2009MySQL – детская игрушка
Monday, November 24th, 2008И всё таки mysql это детская база данных, которой ещё ой как далеко до интерпрайз. Вот одно из доказательств:
“The CHECK clause is parsed but ignored by all storage engines.”
Источник: http://dev.mysql.com/doc/refman/5.0/en/create-table.html
Сегодня мы с Danaki обнаружили такую “классную” фишку: mysql запросто позволяет внести значение “NULL” в столбец таблицы, с явно заданным “NOT NULL” при создании, всего лишь не указывая этот столбец в INSERT. Вот уроды…