2011-11-25 86 views
1

我需要在我的android應用程序中的SQLite數據庫上執行「就地」更新SQL查詢。該查詢是以下形式:「在原地」更新Android SQLite數據庫不與rawQuery工作

更新表T的一組列=柱+ 1其中someOtherColumn =安勤

我試圖與SQLiteDatabase.rawQuery(updateQuery, "someOtherColumn = ?", new String{}[aValue])執行這個查詢,但我發現,列不遞增。當我用通常的SQLiteDatabase.update(...)運行相同的查詢時,它可以正常工作,但這需要我獲取舊列值,在外部更新它,然後執行update(),這可能效率較低,因爲它需要選擇然後更新。

有什麼方法可以使用第一個查詢更新「到位」嗎?

謝謝。

回答

2

有什麼方法可以通過使用第一個查詢更新「到位」嗎?

這不是查詢。這是一個UPDATE聲明。它不返回結果集。與execSQL()一起使用,而不是rawQuery()

但是這需要我去取舊列值,外界對其進行更新,然後執行更新(),這可能是低效率的,因爲它需要一個選擇,然後更新

這是正路所有的SQL數據庫工作。現在,那些提供存儲過程的程序可以允許您在一個請求中執行UPDATESELECT,但它仍然是UPDATESELECT。此外,SQLite不支持存儲過程,至少在我上次查看時。