我通过参数查询失败,我做错了什么?
我需要以下查询:
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);
感谢您的帮助
答案 0 :(得分:0)
49
或者如果你真的想这样使用:
50 - 1
其中第二个参数为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 );
。
答案 1 :(得分:-1)
请尝试此操作,列出名称为foo
的用户。
cursor = bd.rawQuery("SELECT * FROM user WHERE name = ?", new String[] {"foo"});
OR
cursor = bd.rawQuery("SELECT * FROM user WHERE name LIKE ?", new String[] {"foo"});
答案 2 :(得分:-2)
试试这个
cursor = bd.rawQuery("SELECT * FROM user WHERE name= '%"+ nombre + "%'", null);