我有一个表,其中有1个主键列a,1个不可为null的外键列b和5个可为null的外键列c、d、e、f、g。
我必须在值x是主键的行中插入值y:
如果表中不存在x,则必须使用以下内容创建新行:
INSERT INTO table(a, b) VALUES (X, Y)
如果x在表中,而b包含一个值,我必须在c列中设置y:
UPDATE table SET c = Y
如果x出现在表中,并且b和c包含一个值,我必须在d列中设置y:
UPDATE table SET d = Y
等等;如果行已满,则不必执行任何操作。
如何在工作查询中转换此内容?注意,我使用的是mysql。谢谢。
1条答案
按热度按时间lzfw57am1#
你可以用
INSERT ... ON DUPLICATE KEY UPDATE
使用键更新行X
如果存在的话。列需要设置为X
如果是的话NULL
而其“前身”并非如此NULL
(除c
作为b
已声明NOT NULL
). 可以用CASE ... END
.