不能在Android SQLite中使用带有参数和%字符的Like语句

时间:2015-11-08 09:34:02

标签: android sql sqlite

  

引起:java.lang.IllegalArgumentException:无法绑定索引1处的参数,因为索引超出范围。该声明   有0个参数。

Android无法识别?

中的?%个字符

我试图实现这个目标:

 String selectQuery = "SELECT * FROM config WHERE Directory Like '?%';";

 SQLiteDatabase db = this.getReadableDatabase();
 Cursor cursor = db.rawQuery(selectQuery, new String[] {parent});

我已经找到了一个解决方案,但找不到任何东西,我认为这是非常具体的。我试图这样做是因为我想让查询与包含字符Strings的{​​{1}}一起使用。

也许遇到同样问题的人可以回答我如何解决这个问题。

3 个答案:

答案 0 :(得分:4)

使用||连接参数和通配符:

SELECT * FROM config WHERE Directory Like ? || '%';

答案 1 :(得分:0)

SELECT * FROM config WHERE Directory Like '?' || '%';

SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, new String[] {parent});

使用||解决了这个问题

答案 2 :(得分:-1)

您可以将您拥有的条件放入String变量中,然后将其传递给您的查询 - > String Condition="'?"; SELECT * FROM config WHERE Directory Like '"+Condition+"'