更新行如果已存在于mysql中

时间:2010-03-09 15:08:24

标签: mysql

我在mysql中有一个像这样的表

Name              Result  
T1_09_03_2010     fail  
T2_09_03_2010     pass  
T3_09_03_2010     pass  
T4_09_03_2010     fail  
T5_09_03_2010     fail  
T6_09_03_2010     pass  
T7_09_03_2010     fail

嗯,T1_09_03_2010是测试用例名称。如果由于某种原因开发人员想要在同一天再次测试相同的测试用例,那么使用相同的名称,我需要一种方法来根据结果更新已存在的行。 比方说,例如T1_09_03_2010在此上下文中有failed,如果再次运行并且结果为pass,则应更新行,但如果结果为fail ,那么它应该保留结果,因为它是我的意思是忽略新的插入并继续与其他人一起使用。

感谢。

2 个答案:

答案 0 :(得分:4)

这是mysql的示例语法:

INSERT INTO users (username, email) VALUES ('Jo', 'jo@email.com')
ON DUPLICATE KEY UPDATE email = 'jo@email.com'

答案 1 :(得分:1)

您应该使用INSERT... ON DUPLICATE KEY UPDATE ..语法。