更新后,我在“'D”下得到了一个“无效字符常量”。有任何想法吗?
原版的 :

公共游标fetchAllJournals(String sort){

            mDb.rawQuery(UPDATE'DATABASE_JOURNAL_TABLE'
SET'KEY_JOURNAL_NOTES'=
(从“ DATABASE_HOMES_TABLE”中选择COUNT(*)个
哪里'DATABASE_JOURNAL_TABLE'。'KEY_JROWID'='DATABASE_HOMES_TABLE'。'KEY_HOME_JOURNALID')

return mDb.query(DATABASE_JOURNAL_TABLE,new String [] {KEY_JROWID,
KEY_JOURNAL_TITLE,KEY_JOURNAL_NOTES,KEY_JDATE},null,null,null,null,sort,null);
        }


回答:

 公共游标fetchAllJournals(String sort){
            mDb.execSQL(“ UPDATE” + DATABASE_JOURNAL_TABLE +“ SET” + KEY_JOURNAL_NOTES +“” +
                    “ =(从[+ DATABASE_HOMES_TABLE +” WHERE“中选择COUNT(*)个
                    “ + DATABASE_JOURNAL_TABLE +”。“ + KEY_JROWID +” =“ + DATABASE_HOMES_TABLE +”。“ + KEY_HOME_JOURNALID +“)”);

            return mDb.query(DATABASE_JOURNAL_TABLE,new String [] {KEY_JROWID,
                    KEY_JOURNAL_TITLE,KEY_JOURNAL_NOTES,KEY_JDATE},null,null,null,null,sort,null);
        }

最佳答案

在这种情况下,无效字符常量为“ DATABASE_JOURNAL_TABLE”。 Java中的单引号定义了一个字符常量,即一个字符,例如'a'或'b'或'!'。 “ DATABASE_JOURNAL_TABLE”是一个字符串,因此您必须使用字符串文字和双引号,即“前缀“ + DATABASE_JOURNAL_TABLE +”后缀”。

尝试这个:

public Cursor fetchAllJournals(String sort) {

mDb.rawQuery("UPDATE "+DATABASE_JOURNAL_TABLE+" SET "+KEY_JOURNAL_NOTES+" = (SELECT COUNT(*) FROM "+DATABASE_HOMES_TABLE+"WHERE "+DATABASE_JOURNAL_TABLE+"."+KEY_JROWID+" =+"DATABASE_HOMES_TABLE"+."+KEY_HOME_JOURNALID+")");

return mDb.query(DATABASE_JOURNAL_TABLE, new String[] {KEY_JROWID, KEY_JOURNAL_TITLE, KEY_JOURNAL_NOTES, KEY_JDATE},null , null, null, null, sort ,null);
}

10-01 05:37
查看更多