Android SQLite Like 查询

Android SQLite Like query

以下查询在我的应用程序中运行良好

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);

strname 是我正在搜索的内容,但它只会返回与此完全匹配的记录

我想进行修改,以便它恢复包含 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);

我知道它是 LIKE 语句,但我哪里出错了?

感谢您的帮助

马克

% 通配符必须是字符串的一部分:

... + " LIKE '%" + 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 ?",
         new String[] { "%" + strname + "%" },
         null, null, null, null);