我正在尝试编写一个mysql命令,如果X在列中的值中,则会更新条目,如果不是,则将数据作为新行插入。
问题是它不是一个唯一的列 - 所以DUPLICATE KEY不起作用。
我一直试图让它与IF和CASE一起使用来检查值是NULL
的选择结果,但都无济于事。
看起来好像不应该那么困难 - 但我在编写SQL方面非常新鲜。
重申我需要:
1.更新条目col2
X
位于col1
2.或者插入行是col1中已存在的值。
非常感谢任何见解。
EDIT - 已解决:尽管在发布之前进行了检查,但我现在意识到该列确实是唯一的,因此我可以使用正确的DUPLICATE KEY功能。
答案 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
我希望这对你有所帮助。