2009-04-15 60 views
0

我更新我的表用下面的語句:SQLite的 - 值在範圍

UPDATE table SET percentage = percentage + ? WHERE id = ? 

和正在傳遞到數據庫中的值可以是正的和負也。

有沒有一種方法,以確保該百分比值說謊在0..100的範圍內?希望完成它,只使用SQLite。

如果是小於0我想讓它0;如果是100多我想使它100

我可以把它通過我的C代碼實現,但它會更好,把它通過SQLite的完成。

預先感謝您。

回答

1
UPDATE table SET percentage 
= case when percentage < 0 then 0 
    when percentage > 100 then 100 
    else percentage end 
WHERE id = ?; 

如果你省略了where條款,你會爲整個表中設置的百分比,這是你想要什麼可能。

然而,這可能是因爲百分率值大於100或小於零是合法的;我不知道你的問題域。

+0

謝謝,我做了以下: 「UPDATE表SET百分比= CASE WHEN(?百分比+)<0,則0 WHEN(?百分比+)> 100,然後100 ELSE(?百分比+)END WHERE word_id =」 ; 我必須綁定所有3個符號相同的值「?」 ?或者有辦法做一次? – 2009-04-15 20:35:40