sqlite的rawQuery出错

时间:2015-05-16 12:19:27

标签: android sqlite select

我有这个问题:

Cursor c = datasource.db.rawQuery("select * from posts where tags like '%?%' order by time desc",new String[]{arg0});

但它给了我这个错误:

无法绑定索引1处的参数,因为索引超出范围。该陈述有0个参数

我在查询中放置了字符,但rawQuery()没有检测到它。

我现在该做什么?

2 个答案:

答案 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