2012-09-27 85 views
0

我想更新表中的一行,將所有列更新爲新值,除了應保持舊值和新值之間最大值的值。在Android和ContentValue的Sqlite中更新值

是否有某種方式可以在不創建原始查詢的情況下執行此操作(例如使用update(String table, ContentValues values, String whereClause, String\[\] whereArgs)函數或其他類似的方法使用ContentValues),以便抓住提供者的角色縮放和其他優點?

我想達到的查詢是這樣的:

UPDATE users SET name='newName', address='newAddress', 
       lastLogin=GREATEST(lastLogin,1348757941); 
+0

不,我知道的。我不認爲你可以在ContentValues中放置函數(你仍然可以嘗試像在rawQuery中那樣放置字符串「max(something)」),或者你可以嘗試用where子句找出某些東西。你可以發佈rawQuery嗎? – njzk2

+0

我需要一個ContentValues中的函數。張貼原始查詢 – Addev

+1

我懷疑你可以把最大的功能是contentValue,因爲逃避可能是爲了防止這樣的事情。我沒有看到沒有rawQuery的方法(但我不是sqlite的專家) – njzk2

回答

1

GREATEST功能實際上被稱爲MAX

UPDATE users 
SET name = 'newName', 
    address = 'newAddress', 
    lastLogin = MAX(lastLogin, 1348757941)