Mar*_*arr 1 sqlite search sql-like
以下查询在我的应用程序中正常运行
db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,KEY_FAULTREF,KEY_WORKNUM,KEY_ORIGNUM,KEY_REPBY,KEY_REPDATTIM,KEY_DESCRIPTION}, KEY_FAULTREF + "='" + strname+ "'", null,null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
strname是我要搜索的内容,但只会带回与之完全匹配的记录
我想进行修改,以使它包含CONTAINS strname的所有内容(例如,类似strname的东西)
我尝试了以下操作,但我的应用程序崩溃了
db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,KEY_FAULTREF,KEY_WORKNUM,KEY_ORIGNUM,KEY_REPBY,KEY_REPDATTIM,KEY_DESCRIPTION}, KEY_REPBY + "LIKE %'" + strname+ "'%", null,null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
我知道它是LIKE声明,但我想在哪里出错呢?
感谢您的帮助
标记
该%通配符必须是字符串的一部分:
... + " LIKE '%" + strname+ "%'", ...
Run Code Online (Sandbox Code Playgroud)
请注意,当字符串包含引号时,此代码将被炸掉。您应该改用参数:
db.query(true, DATABASE_TABLE,
new String[] {KEY_ROWID,KEY_FAULTREF,KEY_WORKNUM,KEY_ORIGNUM,KEY_REPBY,KEY_REPDATTIM,KEY_DESCRIPTION},
KEY_REPBY + " LIKE ?",
new String[] { "%" + strname + "%" },
null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1502 次 |
| 最近记录: |