Поиск без учета регистра без дополнительных правил?

Я пытаюсь найти сопоставление в MySQL (моя версия 5.0), где строки, различающиеся регистром, считаются одинаковыми, но других правил, таких как:

á = a

и так далее.

Я попытался найти правильную сортировку здесь: http://www.collation-charts.org/mysql60/by-charset.html, но мне кажется, что нужного мне сопоставления не существует.

Я не могу использовать в SQL-запросе: SELECT ... WHERE ниже (столбец 1) = ниже (столбец 2), потому что индексы в столбцах столбец 1 и столбец 2 тогда не используются, и мой запрос ужасно медленный.

Спасибо за любое предложение!


person Martin Vseticka    schedule 10.08.2009    source источник


Ответы (4)


Мне дали совет: просто сделайте такую ​​таблицу: id, word, word_in_lowercase.. это правда, что данные избыточны, но в остальном они удовлетворяют все мои потребности.

Автоматическое обновление word_in_lowercase может быть выполнено с помощью триггера или какого-либо дополнительного программирования.

person Martin Vseticka    schedule 23.08.2009
comment
согласно stackoverflow.com/questions/234591/upper- vs-lower-case/, простое сравнение в нижнем регистре может быть некорректным для некоторых языков - person akavel; 10.11.2009

Какой тип сопоставления установлен в таблицах, о которых идет речь? В настоящее время я использую много таблиц с utf8_hungarian_ci, потому что эта таблица нечувствительна к регистру.

person fabrik    schedule 10.08.2009
comment
Мне это нужно для чешского языка, но это не важно, потому что единственное, что мне нужно, это чтобы A = a и так далее, но á не равно A и так далее. - person Martin Vseticka; 10.08.2009

http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html указывает, что недвоичные строки по умолчанию нечувствительны к регистру. Вы проверили, чтобы убедиться, что он не работает должным образом без использования lower()?

person Cahlroisse    schedule 10.08.2009
comment
если строка недвоичная, мне нужно установить сопоставление, и вопрос в том, каким оно должно быть, если мне не нужны такие правила, как á = a и т.д. - person Martin Vseticka; 10.08.2009
comment
Я вижу вашу точку зрения. Я не знал, что это произошло в наборе символов по умолчанию. - person Cahlroisse; 10.08.2009