自定义SQLite排序规则未触发

时间:2014-07-09 06:34:16

标签: ios sqlite fmdb

我正在尝试在我的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

有没有人有任何想法?

1 个答案:

答案 0 :(得分:2)

documentation中所述,内置的LIKE和GLOB运算符始终使用NOCASE或BINARY排序规则。

您可以通过实现自己的用户定义的like函数来覆盖它。