gpt4 book ai didi

database - 如何在一个查询中切换 postgres 中的 boolean 值

转载 作者:太空狗 更新时间:2023-10-30 01:50:33 28 4
gpt4 key购买 nike

我正在尝试更新 postgres 表中的一行。我想切换一个 boolean 字段。

我不是先检查值是什么然后用相反的值更新字段,而是想知道是否有单个查询来更新字段。

我找到了一个适用于 MySQL 的解决方案,但它不适用于 postgres:

 UPDATE table SET boolean_field = !boolean_field WHERE id = :id

Error: Operator does not exist. ! boolean

postgres 中有类似的语法吗?

最佳答案

使用NOT :

UPDATE table SET boolean_field = NOT boolean_field WHERE id = :id

当旧值等于 FALSE 时,它变为 TRUE,反之亦然。 NULL 字段不会翻转,没有可翻转的内容。

完整示例:

CREATE TABLE test(id serial, boolean_field boolean);

INSERT INTO test(boolean_field)
VALUES(null),(false), (true)
RETURNING *;

并运行测试:

UPDATE test
SET boolean_field = NOT boolean_field
RETURNING *;

关于database - 如何在一个查询中切换 postgres 中的 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24218364/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com