更新后,我在“'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);
}