我在與下面的代碼SELECT語句(這是我的數據庫輔助類)的問題:SELECT語句不返回MAX數
public Cursor selectMaxAreaNumber (long inspectionId) {
String inspectionIdString = String.valueOf(inspectionId);
String[] tableColumns = new String[] {
AREA_NUMBER,
"(SELECT max(" + AREA_NUMBER + ") FROM " + AREAS_TABLE + ") AS max"
};
String whereClause = INSPECTION_LINK + " = ?";
String[] whereArgs = new String[] {
inspectionIdString
};
Cursor c = rmDb.query(AREAS_TABLE, tableColumns, whereClause, whereArgs,
null, null, null);
if (c != null) {
c.moveToFirst();
}
c.close();
return c;
}
我再調用這個我的活動如下:
Cursor c = rmDbHelper.selectMaxAreaNumber(inspectionId);
startManagingCursor(c);
c.moveToFirst();
nextAreaNumber = c.getInt(c.getColumnIndex("max")) + 1;
它拉從表中的最大數量,所以它似乎是WHERE語句失敗。但是,我看不出問題是什麼。
作爲這個問題的一部分,任何人都可以確認,如果我通過在查詢中使用ID轉換爲字符串做正確的事情,我是否需要在兩個位寫入c.moveToFirst()?
非常感謝提前!
嵌套的'SELECT'語句之前執行的'WHERE'子句應用。所以它按預期工作,雖然不符合你的意願:) – zapl