【发布时间】:2013-01-26 18:29:23
【问题描述】:
我有一个 MySQL 表,其中包含一个自动递增的主键、一个人名列以及一些数据。
是否有一个 MySQL 查询,如果这个人的名字是唯一的,我可以在其中插入一个新行,但如果它是一个重复的名字,那么我会更新该行吗?
即
ID, Name, Data
1 , Michael, x
2 , Stephen, y
3 , Christopher, z
如果我要使用“qq”数据将“Michael”添加到数据库中,我希望数据库如下所示:
ID, Name, Data
1 , Michael, qq
2 , Stephen, y
3 , Christopher, z
如果我将“John”与“zz”数据相加,数据库将如下所示:
ID, Name, Data
1 , Michael, x
2 , Stephen, y
3 , Christopher, z
4 , John, zz
我知道命令 ON DUPLICATE KEY UPDATE,但我只想在名称相同时更新,而不是在主键相同时更新。
【问题讨论】:
-
您听说过存储过程吗?他们使这个非常简单mysqltutorial.org/mysql-stored-procedure-tutorial.aspx
-
只需在
Name上添加一个UNIQUE INDEX,没什么大不了的。 -
感谢您提供链接 legendinmaking。