相关疑难解决方法(0)

IN子句和占位符

我正在尝试在Android中执行以下SQL查询:

    String names = "'name1', 'name2";   // in the code this is dynamically generated

    String query = "SELECT * FROM table WHERE name IN (?)";
    Cursor cursor = mDb.rawQuery(query, new String[]{names});
Run Code Online (Sandbox Code Playgroud)

但是,Android不会使用正确的值替换问号.我可以执行以下操作,但是,这不能防止SQL注入:

    String query = "SELECT * FROM table WHERE name IN (" + names + ")";
    Cursor cursor = mDb.rawQuery(query, null);
Run Code Online (Sandbox Code Playgroud)

如何解决此问题并能够使用IN子句?

sqlite android

99
推荐指数
4
解决办法
5万
查看次数

Sqlite查询一列中的多个值

我想在表中查询字段id,其中一些值如1,5,4,11,它们将根据选择来自前一个屏幕.

cursor = database.query(tablename,
                    new String[] { "TopName" }, "id =?", new String[]{"2,3"}, null, null, null);
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到游标计数0,新的String [] {"2"}我得到的值我想要的所有id的字符串数组中的值像OR那样在该列中有值.

sqlite android

6
推荐指数
3
解决办法
2万
查看次数

标签 统计

android ×2

sqlite ×2