Android SQLite区分大小写查找
编辑:我找到了答案。使用“GLOB”。多么奇怪的一个词,难怪我什么都找不到 我试图在Android中使用游标对我的SQLite表进行区分大小写的查找。我在谷歌上搜索过,但所有结果都是人们询问如何获得不区分大小写的查找,以及如何使其不区分大小写的教程。这与我想要的正好相反。我想要一个区分大小写的查找,但我仍在学习SQLite,不知道要添加什么 这是我的游标当前的调用方式:Android SQLite区分大小写查找,android,sqlite,cursor,case-sensitive,Android,Sqlite,Cursor,Case Sensitive,编辑:我找到了答案。使用“GLOB”。多么奇怪的一个词,难怪我什么都找不到 我试图在Android中使用游标对我的SQLite表进行区分大小写的查找。我在谷歌上搜索过,但所有结果都是人们询问如何获得不区分大小写的查找,以及如何使其不区分大小写的教程。这与我想要的正好相反。我想要一个区分大小写的查找,但我仍在学习SQLite,不知道要添加什么 这是我的游标当前的调用方式: c = getContentResolver().query(element, null, PeriodicTable.SYM
c = getContentResolver().query(element, null, PeriodicTable.SYMBOL + " LIKE? ", new String[]{guess}, "symbol");
元素周期表中的元素是区分大小写的,所以如果你输入CO,你会得到碳和氧。如果你输入Co,你就会得到钴。我想使用区分大小写来过滤错误的用户条目。在执行查询之前,请尝试将内置的
LIKE
表达式的区分大小写设置为ON
db.rawQuery("PRAGMA case_sensitive_like=ON", null);
那么
稍后,将LIKE
的大小写敏感度恢复为默认值OFF
db.rawQuery("PRAGMA case_sensitive_like=OFF", null);
让我知道这是否有帮助 元素周期表中没有碳和氧这样的东西。有碳和氧。还有钴。因此,如果您输入
CO
或CO
或CO
或CO
,您将始终获得CO
。当你可以使用=
时,你为什么要使用比如或者GLOB
。有什么区别?我正在为化学公式编写一个解析算法,因此我必须“猜测”当前元素作为当前字符和下一个字符的组合,这可能会导致CO、CO、CO和CO。Like
使用“正则表达式”(嗯,有点)。虽然=
是严格等价的(因此速度更快,因为它只进行一次比较)。感谢您的回答,我发现区分大小写的查找使用“GLOB”而不是“LIKE”。如果我使用rawQuery,我将不得不编写额外的代码,因为我正在为我的SQLite表使用contentProvider。但是如果我使用“GLOB”,我就不需要了。
db.rawQuery("PRAGMA case_sensitive_like=OFF", null);