我有这个问题:
Cursor c = datasource.db.rawQuery("select * from posts where tags like '%?%' order by time desc",new String[]{arg0});
但它给了我这个错误:
无法绑定索引1处的参数,因为索引超出范围。该陈述有0个参数
我在查询中放置了?字符,但rawQuery()没有检测到它。
我现在该做什么?
答案 0 :(得分:4)
like '%?%'
- 由于您将参数占位符括在引号中,因此它不再被视为参数,而是字面上的字符串。
你想这样做,而不是:
Cursor c = datasource.db.rawQuery("select * from posts where tags like ?", new String[]{"%" + arg0 + "%"});
答案 1 :(得分:-2)
你可以做两件事。第一:
Cursor c = datasource.db.rawQuery("select * from posts where tags like '%" + arg0 + "%' order by time desc", null);
或者第二:
Cursor c = datasource.db.rawQuery("select * from posts where tags like'%' | '?' | '%'", new String[]{arg0});
在这里,您可以找到更多可能的解决方案https://code.google.com/p/android/issues/detail?id=3153