gpt4 book ai didi

sql - 限制 postgreSQL 更新命令

转载 作者:行者123 更新时间:2023-11-29 11:12:07 24 4
gpt4 key购买 nike

我有一个具有给定结构的表,现在我想编写一个查询,将 2 xx 产品从状态 1 转移到状态 2。子代码目前与我无关。

master_code| child_code | status_code
-----------|------------|------------
xx | xx1 | 1
xx | xx2 | 1
xx | xx3 | 1
xx | xx4 | 2
xx | xx5 | 2
yy | yy1 | 3
yy | yy2 | 2
zz | zz1 | 1
zz | zz2 | 1

我已经实现了基本的检查,当我使用

update only product_child
set product_status=1
where product_status=2

所有三个 xx 都有代码 2,我想控制它,我原以为只有一个 xx 会通过此命令更改代码

最佳答案

如果您不关心更新哪一行,我会非常谨慎地做(请为此向表中添加一个 PK),那么您可以使用如下内容:

UPDATE
product_child
SET
product_status = 1
WHERE
CTID IN ( SELECT CTID FROM product_child WHERE product_status = 2 and master_code = 'xx' LIMIT 1 )

CTID 是一个唯一的行标识符 - 通过将子选择限制为 1 条记录,我们得到一个对应于满足 WHERE 子句的行的 CTID。

关于sql - 限制 postgreSQL 更新命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11432155/

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