gpt4 book ai didi

mysql - ON DUPLICATE KEY UPDATE with WHERE 条件

转载 作者:可可西里 更新时间:2023-11-01 06:36:47 29 4
gpt4 key购买 nike

我使用 ON DUPLICATE KEY UPDATE 函数在单个表中更新/插入值。到目前为止一切都很好。

INSERT INTO table1 SET field1=aa, field2=bb, field3=cc
ON DUPLICATE KEY UPDATE SET field1=aa, field2=bb, field3=cc;

但现在我想实现只有在条件 (WHERE) 为真时才进行更新。

语法不正确:

INSERT INTO table1 SET field1=aa, field2=bb, field3=cc
ON DUPLICATE KEY UPDATE SET field1=aa, field2=bb, field3=cc WHERE field4=zz;

知道正确的 SQL 语句是怎样的吗?

非常感谢。

最佳答案

使用 IF() 应该可以,尽管它不是很好:

INSERT INTO table1 SET 
field1=aa,
field2=bb,
field3=cc
ON DUPLICATE KEY UPDATE SET
field1 = IF( field4 = zz, aa, field1 ),
field2 = IF( field4 = zz, bb, field2 ),
field3 = IF( field4 = zz, cc, field3 )

只有满足条件时才用新值更新字段,否则保留旧值。

关于mysql - ON DUPLICATE KEY UPDATE with WHERE 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6982884/

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