- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试在 android 中查询一个 SQLite 数据库,其中带有重音符号的法语字符应该像普通拉丁字符一样处理,例如:
SELECT * FROM x WHERE y LIKE %cafe%
应该返回
café, câfè, ...
我已经用谷歌搜索了一整天,并阅读了有关 stackoverflow 的所有帖子。无法向包含规范化标题的表添加列,因为数据库是从服务器获取并由第三方维护的。
使用其他帖子中提到的排序规则,例如
Latin1_general_CI_AI
也没有选择,因为 SQLite 仅支持 3(在 android 5 中)对我没有帮助的排序规则。
将android中的数据库设置为
Locale.FRENCH
并使用排序规则
COLLATE LOCALIZED
也不行。
我知道 iOS (DiacriticInsensitiveSearch) 中有一些标志会自动执行此操作,所以我希望类似的东西也可用于 android。
有什么想法吗?提前致谢!
最佳答案
The possibility to add a column to the table that includes normalized titles is no option, because the database is fetched from a server and maintained by a third party.
您可以使用规范化列和原始表的外键创建单独的表。我认为这是您在 android 上使用 sqlite 的唯一选择。
或者如果你能以某种方式创建用户定义的函数remove_diacritics
,那么你会选择这样的:
SELECT * FROM x WHERE remove_diacritics(lower(y))
LIKE remove_diacritics(lower(%cafe%))
但要注意 x.y
上的索引不会被使用。您也可能不需要 lower
。但据我所知,如果可能的话,在 sqlite 上创建函数并不是那么容易。
关于Android,变音符号不敏感 SQLite 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12624078/
我这里有一些(遗留)代码,似乎在LD_LIBRARY_PATH上调用setenv(其值在编译时未知,实际上它将从命令中获取)行),现在我必须将其移植到 Windows。我怀疑 setenv 只是出于历
我在 SSIS 包上有一个敏感字符串参数,用于存储远程服务器的密码。 但是,当字符串值包含花括号时,作业代理会在配置该步骤的包参数时抛出错误: Microsoft SQL Server Managem
我们都非常了解 strictfp 的工作原理。 像这样: package com.hk.basicjava.tests.strictfp; import java.util.*; public cla
我正在对我的博客进行简单搜索。我使用亚美尼亚语,当我搜索时,这些字母总是很敏感。这是我的代码的一部分。提前谢谢你。 search_query = get.get('search') query_lis
我正在对我的博客进行简单搜索。我使用亚美尼亚语,当我搜索时,这些字母总是很敏感。这是我的代码的一部分。提前谢谢你。 search_query = get.get('search') query_lis
想象一下这个非常基本的可拖放设置: #dropArea 是可放置的。 #itemBox > .item 是可拖动对象。 由于某种原因,droppable
我有这样的网址: http://quickstart.local/public/category1/product2 并且在 url (category1/product2) 数字是 id ,从数据库
我是一名优秀的程序员,十分优秀!