gpt4 book ai didi

iphone - iPhone 应用程序中的表查询

转载 作者:行者123 更新时间:2023-12-03 21:13:49 25 4
gpt4 key购买 nike

我有一个表格 View (链接到数据库)和一个搜索栏。当我在搜索栏中输入内容时,我会在数据库中进行快速搜索并在输入时显示结果。

查询如下所示:

SELECT * FROM MyTable WHERE name LIKE '%NAME%'

只要我只使用 ASCII 字符,一切都会正常。我想要的是输入 ASCII 字符并用变音符号匹配它们的等价字符。例如,如果我输入“Alizee”,我希望它与“Alizee”匹配。

有没有办法使查询区域设置不敏感?我对 SQL 中的 COLLATE 选项感到红色,但似乎对 SQLite 没有用。我还对 iPhone SDK 3.0 有“本地化排序规则”感到红色,但我找不到任何关于这意味着什么的文档。 .

谢谢。

最佳答案

有几个选项可以解决这个问题:

  1. 替换中的所有重音字符在执行之前查询,例如

    "Psychédélices" => "Psychedelices"
    "À contre-courant" => "A contre-courant"
    "Tempête" => "Tempete"
    etc.

    但这仅适用于输入,所以你不能有重音字符数据库本身。简单的解决方案但是远非完美。

  2. 使用第三方库,即 ICU(链接如下)。但不确定它是否是 iPhone 的最佳选择。

  3. 编写一个或多个自定义 C 函数来进行比较。更多内容请参见下面的链接。

StackOverflow 上的一些帖子讨论了各种选项:
How to sort text in sqlite3 with specified locale?
Case-insensitive UTF-8 string collation for SQLite (C/C++)
How to implement the accent/diacritic insensitive search in Sqlite?

还有一些外部链接:
SQLite and native UNICODE LIKE support in C/C++
sqlite case and accent insensitive searches

关于iphone - iPhone 应用程序中的表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1005691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com