如何根据值选择要更新的列

时间:2018-06-20 20:17:24

标签: mysql sql insert

我有一个表,其中包含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。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用INSERT ... ON DUPLICATE KEY UPDATE用密钥X更新该行(如果存在)。如果列为X并且其“前身”不是NULL({{1}除外,因为NULL被声明为{{ 1}})。可以用CASE ... END来表示。

c