【问题标题】:Android SQLite how to use where clause?Android SQLite如何使用where子句?
【发布时间】:2015-02-13 07:47:11
【问题描述】:

在下面的代码中,我从我的表中选择 KEY_ROWID = 12,但现在我需要选择大于 12 但小于 20 的 KEY_ROWID。如何在下面的查询中指定 where 子句。

  mDb.query(true, SQLITE_TABLE, new String[] {
                KEY_ROWID     }, 
                KEY_ROWID + "=?" 
                new String[] {"12"},
                null, null, KEY_ITEM , null);     

我不想写 rawQuery。

【问题讨论】:

标签: android sqlite


【解决方案1】:

试试这个查询

mDb.query(true, SQLITE_TABLE, new String[] {
            KEY_ROWID     }, 
            KEY_ROWID + " > ? AND " + KEY_ROWID + " < ?",
            new String[] {"12", "20"},
            null, null, KEY_ITEM , null);

【讨论】:

    【解决方案2】:

    像这样更改您的查询

    mDb.query(true, SQLITE_TABLE, new String[] {
                KEY_ROWID     }, 
                KEY_ROWID + ">12 AND "+KEY_ROWID+ " <20", 
                null,
                null, null, KEY_ITEM , null); 
    

    mDb.query(true, SQLITE_TABLE, new String[] {
            KEY_ROWID     }, 
            KEY_ROWID + " >? AND " + KEY_ROWID + " <?",
            new String[] {""+12, ""+20},
            null, null, KEY_ITEM , null);
    

    【讨论】:

    • 当您想动态决定数字时,您将发送变量,如果以这种方式使用,因为连接字符串会导致 sql 注入攻击。最好的方法是将数字作为参数发送。
    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多