Case-insensitive collation, но без учета совпадающих символов.

nail

Новичок
Case-insensitive collation, но без учета совпадающих символов.

Есть ли в MySQL такой текстовый тип, что:
"Fusion" != "Füsion"
"Fusion" == "fusion"
"Füsion" == "füsion"
?

Суть проблемы в том, что все эти collation пытаются угадывать различные написания букв со спецсимволами и без, и подобные символы трактуются как совпадающие.
Мне же такого не надо - такие слова должны быть уникальными.
Но при этом сравнение и поиск строк должны быть регистро-независимыми.

Если использовать binary, то теряется регистро-независимость.

Так вот, есть ли в MySQL такой collation, который все разные символы считает по-настоящему разными?
 

nail

Новичок
Мануал я читал, там описывается как они умеют заменять символы и даже последовательности символов, но вот как сделать так, чтобы не заменялось, я не нашел.
Можно для тупых объяснить?
А как ответили на пхп конфе? "читайте мануал"? :)
 

fixxxer

К.О.
Партнер клуба
а, понял, такого коллейшена вроде нету, можно попробовать коллейшен какого-то "неподходящего" языка выставить разве что.
 

Wicked

Новичок
nail
могу предложить разве что binary collation + кэширование в виде LOWER()
 

nail

Новичок
Вобщем завел дополнительное поле, куда записывается lower() значение.
edit: Wicked снайпер, опередил немного :)
 

Wicked

Новичок
nail
кстати, возникла другая идея:
ты можешь хранить обычные строки. Но подменять mysql оператор A = B на (A = B AND binary lower(A) = lower(B)), когда нужно.
 
Сверху