Pau*_*aul 10 java sqlite android
如果给定列包含内部任何位置的文本,则尝试创建将返回匹配的查询.例如,如果我要传递"真的"这个词,那么包含文本"这是一个非常长的文本行"的列将匹配.到目前为止,我的查询仅在完全匹配时返回,因此它只匹配包含"真实"的列,即它.
我尝试了几种方法,但两者似乎都返回了相同的结果:
第一种方式(s是我传入的字符串):
Cursor cursor = mDb.query(DATABASE_TABLE, new String[] {KEY_TITLE}, KEY_TITLE + " LIKE '%" + s + "%' COLLATE NOCASE", null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
下一步
String p_query = "SELECT COUNT(*) FROM data WHERE number=? COLLATE NOCASE";
Run Code Online (Sandbox Code Playgroud)
Sam*_*Sam 30
如果给定列包含内部任何位置的文本,则尝试创建将返回匹配的查询.
这适用于我,它的参数化:
Cursor cursor = mDb.query(DATABASE_TABLE, new String[] {KEY_TITLE},
KEY_TITLE + " LIKE ?", new String[] {"%" + s + "%"},
null, null, null);
Run Code Online (Sandbox Code Playgroud)
"真的"是一个独特的足够的词,但如果你正在寻找的东西,如"冰",不想"骰子","副","冰淇淋",等你将不得不使用不同的模式,如:"% " + s + " %"和s + " %".
或者使用带有标记器的FTS表,如Porter Stemming.
| 归档时间: |
|
| 查看次数: |
9590 次 |
| 最近记录: |