表查询在iPhone应用程序
-
05-07-2019 - |
题
我有一个提供(与数据库)和一个搜索栏。当我的东西在搜索酒吧,我做了一个快速搜索的数据库和结果显示我的类型。
查询这样的:
SELECT * FROM MyTable WHERE name LIKE '%NAME%'
一切工作的现只要我用仅ASCII characters.什么我想要的类型ASCII字符,并符合他们的相关变音符号.例如,如果我输入"艾莉婕",我将指望它的匹配"Alizée".
有没有办法做出的查询语言环境不敏感的?我红色的有关核选择在SQL,但似乎没有使用源码.我也是红色的iPhone,SDK3.0有"本地化的排序规则",但我还是无法找到任何文档中关于这意味着什么...
谢谢你。
解决方案
有几个选择,用于解决这样的:
代替所有饰字在 查询之前执行它,例如
"Psychédélices"=>"Psychedelices"
"À contre-柯朗"=>"一contre-柯朗"
"Tempête"=>"Tempete"
等等。但是,这仅适用于输入这样 你必须没有口音字在 该数据库本身。简单的解决方案,但是 远非完美。
使用一个第3方图书馆,即伊斯兰法院联盟(下面的链接).不知道这是否是最佳选择的iPhone虽然。
写一个或多个自定义C功能,这将做比较。越下面的链接。
一些员额在这里计算器,讨论各种选项:
如何排序的文本在sqlite3与指定的区域设置?
情况不敏感的UTF-8串的排序规则对于源码(C/C++)
如何实现的口音/变音符号不敏感的搜索源码?
另外一对夫妇的外部链接:
源码和地UNICODE支持在C/C++
源码情况和重点不敏感的搜索
其他提示
我不确定SQL,但我认为你绝对可以使用 NSDiacriticInsensitivePredicateOption
来比较内存中的NSStrings。
一个例子是一个NSArray,其中包含您正在搜索的字符串。您可以使用 NSDiacriticInsensitivePredicateOption
作为比较选项迭代比较字符串的数组,并显示成功的匹配。