如何格式化WHERE子句和'?'在SQLite查询?

时间:2011-03-11 17:17:34

标签: android sqlite

我正在尝试使用内置的SQLite函数,但我不确定如何格式化查询。如何格式化WHERE子句和可以进入的?

column [] = {"name"};
selectionArg [] = {"john};
Select name from mytable where id = "john"

db.query(mytable, column, id = ?, selectionArg, null,null,null);

我不是我可以测试它的地方,但是我试图在第一次就把它弄好。我不确定?"?"还是id = + "?"等等。我似乎无法找到任何格式的例子。

2 个答案:

答案 0 :(得分:19)

对于查询:

select name from mytable where id = "john"

使用

(SQliteDatabase) db.query(
    "mytable" /* table */,
    new String[] { "name" } /* columns */,
    "id = ?" /* where or selection */,
    new String[] { "john" } /* selectionArgs i.e. value to replace ? */,
    null /* groupBy */,
    null /* having */,
    null /* orderBy */
);

答案 1 :(得分:2)

您不能在问号周围使用引号

示例:

db.query(
            true,
            "tablename",
            new String[] {
                "col1",
                "col2"
            },
            "col1 = ?",
            new String[]{ "value" },
            null,
            null,
            null,
            null
        );