Spec-Zone .ru
спецификации, руководства, описания, API
|
Сопоставление является рядом правил, который определяет, как сравнить и сортировать символьные строки. Каждое сопоставление в MySQL принадлежит единственному набору символов. У каждого набора символов есть по крайней мере одно сопоставление, и у большинства есть два или больше сопоставления.
Сопоставление упорядочивает символы, основанные на весах. Каждый символ в наборе символов отображается на вес. Символы с равными весами сравниваются как равный, и символы с неравными весами сравниваются согласно относительной величине их весов.
WEIGHT_STRING()
функция может использоваться, чтобы видеть веса для символов в строке. Значение, которое это возвращает, чтобы
указать на веса, является двоичной строкой, таким образом, удобно использовать HEX(WEIGHT_STRING(
вывести на экран веса в печатаемой форме. Следующий
пример показывает, что веса не отличаются для lettercase для букв в str
))'AaBb'
это,
если недвоичная нечувствительная к регистру строка, но действительно отличается, если это - двоичная строка:
mysql>SELECT HEX(WEIGHT_STRING('AaBb' COLLATE latin1_swedish_ci));
+------------------------------------------------------+| HEX(WEIGHT_STRING('AaBb' COLLATE latin1_swedish_ci)) |+------------------------------------------------------+| 41414242 |+------------------------------------------------------+mysql>SELECT HEX(WEIGHT_STRING(BINARY 'AaBb'));
+-----------------------------------+| HEX(WEIGHT_STRING(BINARY 'AaBb')) |+-----------------------------------+| 41614262 |+-----------------------------------+
MySQL поддерживает несколько реализаций сопоставления, как обсуждено в Разделе 10.4.1, "Типы Реализации Сопоставления". Некоторые из них могут быть добавлены к MySQL без перекомпиляции:
Простые сопоставления для 8-разрядных наборов символов.
UCA-на-основе сопоставления для наборов символов Unicode.
Двоичный файл (
)
сопоставления.xxx
_bin
Следующие разделы описывают, как добавить сопоставления первых двух типов к существующим наборам символов. У всех существующих наборов символов уже есть двоичное сопоставление, таким образом нет никакой потребности здесь, чтобы описать, как добавить тот.
Сводка процедуры для того, чтобы добавить новое сопоставление:
Выберите ID сопоставления.
Добавьте конфигурационную информацию, которая называет сопоставление и описывает упорядочивающие символ правила.
Перезапустите сервер.
Проверьте, что сопоставление присутствует.
Инструкции здесь покрывают только сопоставления, которые могут быть добавлены, не перекомпилировав MySQL. Чтобы добавить сопоставление, которое действительно требует перекомпиляции (как реализовано посредством функций в исходном файле C), используйте инструкции в Разделе 10.3, "Добавляя Набор символов". Однако, вместо того, чтобы добавить всю информацию, запрошенную для полного набора символов, только измените соответствующие файлы для существующего набора символов. Таким образом, основанный на том, что уже присутствует для текущих сопоставлений набора символов, добавьте структуры данных, функции, и конфигурационную информацию для нового сопоставления.
Если Вы изменяете существующее сопоставление, которое может влиять на упорядочивание строк для, индексирует на столбцах, которые используют сопоставление. В этом случае восстановите любой такой, индексирует, чтобы избежать проблем, таких как неправильные результаты запроса. Для дополнительной информации см. Раздел 2.11.3, "Проверяя Или Таблицы, или Индексирует, Должен быть Восстановлен".
Алгоритм сопоставления Unicode (UCA) спецификация:
Язык разметки Данных Локали (LDML) спецификация:
Инструкции "Статьи MySQL
Blog для того, чтобы добавить новое сопоставление Unicode":