我有一个表,其中包含1个主键列a,1个不可为空的外键列b和5个可为空的外键列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。谢谢。
答案 0 :(得分:0)
您可以使用INSERT ... ON DUPLICATE KEY UPDATE
用密钥X
更新该行(如果存在)。如果列为X
并且其“前身”不是NULL
({{1}除外,因为NULL
被声明为{{ 1}})。可以用CASE ... END
来表示。
c