我有一个包含以下两个字段的表
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/