【问题标题】:SQLite and Android. How do I use String Having in my query?SQLite 和安卓。如何在查询中使用 String Have?
【发布时间】:2010-07-17 01:39:33
【问题描述】:

我有一个查询,可以将数据库中的所有内容提取到列表视图中。

return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_HEIGHT, KEY_BODY, KEY_HOMEID},null , null, null, null, null,null);

                                |               String Having is the 3rd from
                                                           last null.

我只想要字段 KEY_HOMEID 与名为 journalId 的变量匹配的记录,该变量应该是一个数字字符串。

我也想知道如何将变量带入我的 DatabaseAdapter... ((resource) this.getApplication()).getjournalId()) 会工作吗? resource 是一个扩展应用程序的类。

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    首先,发布错误消息而不是“没有骰子”会有所帮助。

    其次,请阅读SQLiteDatabase.query() 的文档。 SQL 关键字如“FROM”和“HAVING”不应构成方法调用的一部分。

    您已经将表名作为第一个参数传递给query(),因此写“FROM DATABASE_NAME WHERE ...”既多余又会导致形成无效查询。

    第三,您不能将 Java 变量名作为selection 参数字符串的一部分传递——您需要有一个类似的字符串:KEY_HOMEID +"="+ journalId

    第四,通常最好使用selectionArgs,而不是将查询参数嵌入selection。特别是当您有来自用户输入的字符串或参数时。
    例如selection = KEY_HOMEID +"=?"selectionArgs = new String[] { journalId }

    总体而言,您的方法调用应如下所示:

    mDb.query(DATABASE_TABLE, 
              new String[] { KEY_ROWID, KEY_HEIGHT, 
                             KEY_BODY, KEY_HOMEID },
              KEY_HOMEID +"=?", new String[] { journalId },
              null, null, null);
    

    【讨论】:

    • 如何在查询中使用 String Have?简而言之,如何比较 Have 子句中的字符串值?
    【解决方案2】:

    使用 WHERE 子句; HAVING 仅与 GROUP BY 一起使用。

    【讨论】:

    • 将 SELECT * FROM DATABASE_TABLE WHERE KEY_HOMEID=((resource) this.getApplication()).getjournalId());工作?我应该把它和查询放在哪里?
    • public Cursor fetchAllNotes(String journalId) { return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_HEIGHT, KEY_BODY, KEY_HOMEID},"FROM DATABASE_TABLE WHERE KEY_HOMEID = journalId",null, null,空,空,空);这就是我现在所处的位置仍然没有骰子
    • HAVING is only used with Aggregate functions
    猜你喜欢
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 2015-09-05
    • 2012-06-08
    • 1970-01-01
    • 2013-04-09
    相关资源
    最近更新 更多