我有一个包含以下两个字段的表

jobid |  statusCode


现在,这就是我要执行的操作,我想“如果statusCode小于某个值,请使用给定的jobid删除reocrd,否则使用新的statusCode更新此记录”

我的问题是是否有一些SQL操作可以执行上述工作,还是我必须使用多个SQL“ if-else”类型的查询。我的数据库是SQlite3

问候,
Farrukh Arshad。

最佳答案

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

关于sql - 删除或更新SQL记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14746800/

10-13 05:03