H2 В памяти БД по-разному обрабатывают ORDER BY в режиме MySQL - PullRequest
5 голосов
/ 01 июля 2011

У меня есть запрос, который делает ORDER BY для столбца VARCHAR, который содержит адреса электронной почты.

Если я ударил свою физическую базу данных MySQL, она игнорирует регистр в ORDER BY. Тем не менее, моя h2 в памяти DB уважает случай. Он установлен в режим MySQL.

Кто-нибудь знает, почему это так?

Ответы [ 3 ]

5 голосов
/ 01 июля 2011

Чувствительность к регистру при оценке строк в базах данных определяется параметрами сортировки.

Проверьте обработку параметров сортировки для H2: http://www.h2database.com/html/grammar.html#set_collation

2 голосов
/ 02 июля 2011

В качестве альтернативы использованию параметров сортировки вы можете отключить чувствительность к регистру, используя SET IGNORECASE TRUE . Это необходимо сделать до создания таблиц.

Причина, по которой режим MySQL H2 не учитывает регистр , заключается в следующем: режимы совместимости в H2 не влияют на то, как все сохраняется (в противном случае вы не можете получить доступ к базе данных в другом режиме совместимости позже или отключите режим совместимости). Чувствительность к регистру влияет на то, как все хранится (особенно индексы).

0 голосов
/ 21 октября 2016

Используйте VARCHAR_IGNORECASE вместо VARCHAR.

Ссылка

...