barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

четверг, 9 февраля 2012 г.

Регистронезависимое сравнение строк в PostgreSQL

В MySQL для регистронезависимого сравнения строк предусмотрены caseinsensitive collations (collation`ы с "_ci" на конце). В Postgres, на сколько я знаю, collation установить невозможно, поэтому остается использовать приведение обеих сравниваемых строк к одному регистру (через lower() или upper()) или использование регистронезависимого ILIKE. Оба варианта могут привести к тому, что в запросе не будет использоваться индекс, даже если поле, по которому ведется сравнение, проиндексировано. Также отсутствие регистронезависимого сравнения приводит к тому, что UNIQUE-ограничения также регистрозависимы.
Обсуждение данной темы есть тут: http://habrahabr.ru/qa/2445/.

Комментариев нет:

Отправить комментарий