2013-02-07 79 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

这不起作用。 –