更新MySQL表并忽略重复的条目

时间:2013-10-22 11:25:49

标签: mysql

我创建了一个包含UNIQUE'mobile_no'的表,如

09727048248
9727048248
9824578564
9898998998

然后我将检查手机号码是否有效,如果它有效,那么我想将其更改为正确的格式,如919727048248。

为此,我调用了更新查询,如..

update bccontacts 
set mobile_no='919727048248' 
where mobile_no=09727048248

第一次成功运行,但第二次回复

  

ERROR 1062(23000):对于'mobile_no'键重复输入'919727048248'

因为'mobile_no'已经有一个唯一的密钥集。

那么还有IGNORE DUPLICATE KEY ON UPDATE的其他查询吗?

2 个答案:

答案 0 :(得分:74)

使用UPDATE IGNORE

update IGNORE bccontacts 
set mobile_no='919727048248' 
where mobile_no=09727048248

此处有更多信息:http://dev.mysql.com/doc/refman/5.0/en/update.html

答案 1 :(得分:0)

如果您已将手机号码声明为表格中的主键,那么您的表格中不能使用相同的手机号码两次。看看MySQL UPDATE documentation