MySQL:如果值不在DB中,则更新或添加

时间:2015-05-06 20:10:36

标签: mysql

我正在尝试编写一个mysql命令,如果X在列中的值中,则会更新条目,如果不是,则将数据作为新行插入。

问题是它不是一个唯一的列 - 所以DUPLICATE KEY不起作用。

我一直试图让它与IF和CASE一起使用来检查值是NULL的选择结果,但都无济于事。

看起来好像不应该那么困难 - 但我在编写SQL方面非常新鲜。

重申我需要: 1.更新条目col2 X位于col1 2.或者插入行是col1中已存在的值。

非常感谢任何见解。

EDIT - 已解决:尽管在发布之前进行了检查,但我现在意识到该列确实是唯一的,因此我可以使用正确的DUPLICATE KEY功能。

1 个答案:

答案 0 :(得分:0)

// Search if X is in COL 1
IF (SELECT count(*) FROM Table WHERE col1 = X) > 1 
THEN // UPDATE Table SET col2 = X WHERE col1 = X
ELSE // INSERT ROW 

很抱歉,但我不太清楚MYSQL语法,但这是个主意。

一些参考资料。 https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html https://dev.mysql.com/doc/refman/5.1/en/counting-rows.html

我希望这对你有所帮助。