gpt4 book ai didi

MYSQL 更新其中值 IS NULL 也更新不为空的值

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

我需要更新一列,以便 NULL 值成为在“division”列中也具有特定值的行中的默认标志“N”。(如果“division”列是某些其他值,则该标志可以为 NULL)看起来很简单......

UPDATE participation_criteria SET rfb_flag='N' WHERE division_id=2 AND rfb_flag IS NULL;

但是,第一次在开发中运行以及第一次在测试中运行时,它会将 Division_id=2 的行的所有标志替换为“N”(不仅仅是 rfb_flag 设置为 NULL 的行)。因此,如果行具有“Y”标志且 Division_id=2,它也被设置为“N”。

这个...

id | ....| division_id | rfb_flag
3 2 NULL
4 2 Y
5 2 NULL
6 2 Y

成为

id | ....| division_id | rfb_flag
3 2 N
4 2 N
5 2 N
6 2 N

编辑:这不应该发生,对吧? 问题是团队中的另一个开发人员确认了这一点,所以我需要尝试重新创建它

但是,如果我返回数据并向一行中的标志列添加 NULL 值,并在另一行中为标志列添加“Y”值并再次运行 sql,它会留下“Y”并且仅替换NULL。

所以手动设置为此...

id | ....| division_id | rfb_flag
3 2 NULL
4 2 Y
5 2 N
6 2 N

再次运行就正确了

id | ....| division_id | rfb_flag
3 2 N
4 2 Y
5 2 N
6 2 N

换句话说,我很难小规模地复制这个场景。有什么建议吗?

最佳答案

我以前也遇到过这种情况。就我而言,解决这个问题的方法是:

UPDATE participation_criteria SET rfb_flag='N' WHERE division_id=2 AND ISNULL(rfb_flag);

希望有帮助。

关于MYSQL 更新其中值 IS NULL 也更新不为空的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473400/

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