2013-02-07 108 views
2

我有以下兩個字段刪除或更新SQL記錄

jobid | statusCode 

現在,這裏是我想做的事情,我想「給定作業ID刪除reocrd如果的StatusCode小於一定值的表,否則用新的statusCode更新此記錄「

我的問題是有一些單一的SQL操作來執行上述工作,或者我必須使用多個SQL」if-else「類查詢。我的數據庫是SQlite3

Regards, Farrukh Arshad。

+0

只會有1 if-else used –

回答

1

SQLite有一個命令UPDATE OR REPLACE,該命令組合了更新和插入,但這僅適用於您希望避免插入重複的常見情況。

DELETE命令沒有您想要的功能。

SQLite沒有任何控制流語句,所以最好的辦法是同時執行DELETE/UPDATE語句:

DELETE FROM MyTable 
WHERE jobid = ? 
    AND statusCode < ?; 

UPDATE MyTable 
SET statusCode = ? 
WHERE jobid = ?;  -- does nothing if record was deleted 
0

像這樣的東西應該有所幫助:

​​
+0

這不起作用。 –