Android SQLITE 不执行带有参数的查询
Android SQLITE does not execute queries with arguments
我无法通过参数查询,我做错了什么?
我需要以下查询:
cursor = bd.rawQuery("SELECT * FROM user WHERE user.name=?", new String[]{"%"+nombre+"%"});
我尝试了以下方法,但都失败了:
cursor = bd.rawQuery("SELECT * FROM user WHERE name=?", new String[]{"%"+nombre+"%"});
cursor = bd.rawQuery("SELECT * FROM user WHERE user.name=?", new String[]{nombre});
这个有效:
cursor = bd.rawQuery("SELECT * FROM user ", null);
感谢您的帮助
试试这个
cursor = bd.rawQuery("SELECT * FROM user WHERE name= '%"+ nombre + "%'", null);
正如迈克在您的评论中所说
cursor = bd.rawQuery("SELECT * FROM user WHERE name LIKE ? ", new String[]{"%" + nombre + "%"});
或者如果你真的想这样使用:
cursor = bd.rawQuery("SELECT * FROM user ", null);
其中第二个参数为空。
改用转义字符串:
cursor = bd.rawQuery("SELECT * FROM user WHERE name LIKE '%" + nombre.replaceAll("'","''") + "%' ", null );
或像 描述的那样使用 GLOB
。
请试试这个,列出名称为 foo
的用户。
cursor = bd.rawQuery("SELECT * FROM user WHERE name = ?", new String[] {"foo"});
或
cursor = bd.rawQuery("SELECT * FROM user WHERE name LIKE ?", new String[] {"foo"});
我无法通过参数查询,我做错了什么?
我需要以下查询:
cursor = bd.rawQuery("SELECT * FROM user WHERE user.name=?", new String[]{"%"+nombre+"%"});
我尝试了以下方法,但都失败了:
cursor = bd.rawQuery("SELECT * FROM user WHERE name=?", new String[]{"%"+nombre+"%"});
cursor = bd.rawQuery("SELECT * FROM user WHERE user.name=?", new String[]{nombre});
这个有效:
cursor = bd.rawQuery("SELECT * FROM user ", null);
感谢您的帮助
试试这个
cursor = bd.rawQuery("SELECT * FROM user WHERE name= '%"+ nombre + "%'", null);
正如迈克在您的评论中所说
cursor = bd.rawQuery("SELECT * FROM user WHERE name LIKE ? ", new String[]{"%" + nombre + "%"});
或者如果你真的想这样使用:
cursor = bd.rawQuery("SELECT * FROM user ", null);
其中第二个参数为空。
改用转义字符串:
cursor = bd.rawQuery("SELECT * FROM user WHERE name LIKE '%" + nombre.replaceAll("'","''") + "%' ", null );
或像 GLOB
。
请试试这个,列出名称为 foo
的用户。
cursor = bd.rawQuery("SELECT * FROM user WHERE name = ?", new String[] {"foo"});
或
cursor = bd.rawQuery("SELECT * FROM user WHERE name LIKE ?", new String[] {"foo"});