iPhone应用程序中的表查询
我有一个tableview(链接到数据库)和一个搜索栏。当我在搜索栏中键入内容时,我会在数据库中进行快速搜索,并在键入时显示结果 查询如下所示:iPhone应用程序中的表查询,iphone,sqlite,internationalization,diacritics,Iphone,Sqlite,Internationalization,Diacritics,我有一个tableview(链接到数据库)和一个搜索栏。当我在搜索栏中键入内容时,我会在数据库中进行快速搜索,并在键入时显示结果 查询如下所示: SELECT * FROM MyTable WHERE name LIKE '%NAME%' 只要我只使用ASCII字符,一切正常。我想要的是键入ASCII字符,并将其等效字符与变音符号匹配。例如,如果我键入“Alizee”,我希望它与“alizeée”匹配 有没有办法使查询不区分区域设置?我对SQL中的COLLATE选项感到恼火,但似乎对SQLit
SELECT * FROM MyTable WHERE name LIKE '%NAME%'
只要我只使用ASCII字符,一切正常。我想要的是键入ASCII字符,并将其等效字符与变音符号匹配。例如,如果我键入“Alizee”,我希望它与“alizeée”匹配
有没有办法使查询不区分区域设置?我对SQL中的COLLATE选项感到恼火,但似乎对SQLite没有任何用处。我还对iPhone SDK 3.0具有“本地化的排序规则”感到恼火,但我找不到任何关于这意味着什么的文档
谢谢。我不太清楚SQL,但我认为您完全可以使用
nsdiacriticinsensitivepredicteoption
来比较内存中的NSStrings
一个例子是一个NSArray,其中包含了您正在搜索的字符串。您可以使用
nsdiacriticinsensitivepredicteoption
作为比较选项,在数组上迭代比较字符串,并显示成功的匹配项。有几个选项可以解决此问题:
“控制权”=>“控制权”
“临时工”=>“临时工”
等等 但这只适用于输入,所以 你不能有重音字符 数据库本身。简单的解决方案,但 远非完美
还有几个外部链接:
谢谢,但我的表最多有50000行,因此很遗憾,内存中的搜索不是一个选项。谢谢,我决定替换所有重音字符。顺便说一下,我喜欢你的例子