iOS - 如何使用SQLite.swift进行变音符号不敏感搜索?

时间:2015-12-02 19:55:22

标签: ios search diacritics sqlite.swift

我正在使用SQLite.swift。 有没有办法在SQLite中进行变音符号不敏感的LIKE查询?例如,此查询:

SELECT * FROM users WHERE name LIKE "thu%"

将返回:

thử
thu
thư
etc.

1 个答案:

答案 0 :(得分:1)

来自the documentation

  

我们可以通过在数据库连接上调用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%'