我正在尝试在我的SQLite数据库中实现变音符号不敏感查找(在iOS上)。根据我的阅读,创建自己的校对是这样做的方法(如果有的话,请提出替代方案)。我已经实现了以下内容:
static int _myFunction(void* context, int length1, const void* bytes1, int length2, const void* bytes2) {
NSLog (@"Compare");
...
}
...
int collationResult = sqlite3_create_collation(db, "custom", SQLITE_UTF8, NULL, _myFunction);
NSLog (@"%d", collationResult == SQLITE_OK);
返回时没有错误。但是当我运行以下命令时,没有结果返回,并且我的函数中没有任何代码被调用。 (我想得到“Côte”的结果)
SELECT * FROM team WHERE name LIKE \"Cote%\" COLLATE custom
有没有人有任何想法?
答案 0 :(得分:2)
如documentation中所述,内置的LIKE和GLOB运算符始终使用NOCASE或BINARY排序规则。
您可以通过实现自己的用户定义的like
函数来覆盖它。