Что означает COLLATE LOCALIZED ASC?
private Cursor getContacts()
{
// Run query
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME
};
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '" +
(mShowInvisible ? "0" : "1") + "'";
String[] selectionArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
return managedQuery(uri, projection, selection, selectionArgs, sortOrder);
}
Что значит COLLATE LOCALIZED ASC
стоять?
3 ответов
Collate просто фантазии говорят для сортировки (ну вроде). Таким образом, это порядок сортировки на основе локализованных предпочтений (т. е. алфавита и соглашений текущего языка) в ascконечные заказа.
он инструктирует SQLite сортировать символы, отличные от ASCII, соответствующим образом. Символы с диакритикой (некоторые называют их акцентами) имеют более высокие байтовые коды, чем символ Z, поэтому простая сортировка ASCII не подходит для многих иностранных языков.
например, заглавный байтовый код символа -0x41
и столица Z char'S является 0x5A
. Тогда у нас есть Á (capital a accute), код которого в Unicode является 0x00C1
. Так что простой байт-код приведет к Á после З.
но в языках, которые имеют такие символы, соглашение заключается в том, чтобы поставить те с диакритикой, как если бы у них не было диакритики. Так что а должно быть вместе с равниной а, по крайней мере, до В.--5-->
и для иллюстрации ниже приведен список имен, отсортированных с использованием их байт-кода:
- бренда
- Наталья
- Джордж
- Альваро
- Érico
теперь с помощью COLLATE LOCALIZED
он будет сортировать по "база" персонажа:
- Альваро
- бренда
- Наталья
- Érico
- Джордж
COLLATE-это оператор SQL, который позволяет переопределить порядок сортировки строк по умолчанию. Например, " COLLATE NOCASE "выполняет сравнение без учета регистра, а" COLLATE BINARY " -сравнение с учетом регистра.
интерфейс SQLite C позволяет определять пользовательские параметры сортировки (http://www.sqlite.org/c3ref/create_collation.html).