SQLite 查询在单行上设置变量

SQLite Query SET variable on a single row

我在 SQLite 中有一个名为 "allarmi_ingressi" 的 table,里面有很多行。 我想创建一个查询,将列 "visto" 上的变量更改为 1(如果 "visto=0")和更改为 0(如果 "visto=1")。 这是我做的:

UPDATE allarmi_ingressi SET visto = '1' WHERE visto = '0'

当然这会修改列中的每一行"visto";

我想知道是否可以通过主键修改它"selecting",在我的例子中是"id_allarme"。

使用CASE Expression

查询

update allarmi_ingressi 
set visto = (
    case visto when '1' then '0'
    when '0' then '1'
    else visto end
)
where id_allarme = __; -- id here

在 SELECT 查询中,您将使用 WHERE 子句查找具有特定 id_allarme 值的行。

相同的 WHERE 子句可以与 UPDATE 一起使用:

UPDATE allarmi_ingressi
SET visto = 1 - visto
WHERE id_allarme = ?;