Я работаю с SQLite.swift. Есть ли способ выполнить нечувствительный к диакритическим знакам запрос LIKE в SQLite? Например, этот запрос:
SELECT * FROM users WHERE name LIKE "thu%"
вернется:
thử
thu
thư
etc.
Я работаю с SQLite.swift. Есть ли способ выполнить нечувствительный к диакритическим знакам запрос LIKE в SQLite? Например, этот запрос:
SELECT * FROM users WHERE name LIKE "thu%"
вернется:
thử
thu
thư
etc.
Из документации:
Мы можем создавать пользовательские последовательности сопоставления, вызывая
createCollation
при подключении к базе данных.try db.createCollation("NODIACRITIC") { lhs, rhs in return lhs.compare(rhs, options: .DiacriticInsensitiveSearch) }
Мы можем ссылаться на пользовательское сопоставление, используя элемент
Custom
перечисленияCollation
.restaurants.order(collate(.Custom("NODIACRITIC"), name)) // SELECT * FROM "restaurants" ORDER BY "name" COLLATE "NODIACRITIC"
В вашем случае вы можете выполнить следующий запрос впоследствии:
SELECT * FROM users WHERE name COLLATE NODIACRITIC LIKE 'thu%'
Use of unresolved identifier 'collate'
- person TomSawyer; 03.12.2015