加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – SQL UPDATE或DELETE如果重复

发布时间:2020-12-11 23:51:49 所属栏目:MySql教程 来源:网络整理
导读:我正在尝试在我的数据库中运行3个查询: UPDATE `table` SET `rubriq` = '77' WHERE `rubriq` = '61';UPDATE `table` SET `rubriq` = '77' WHERE `rubriq` = '62';UPDATE `table` SET `rubriq` = '77' WHERE `rubriq` = '63'; 在表格中我有两列abonne和rubri

我正在尝试在我的数据库中运行3个查询:

UPDATE `table` SET `rubriq` = '77' WHERE `rubriq` = '61';
UPDATE `table` SET `rubriq` = '77' WHERE `rubriq` = '62';
UPDATE `table` SET `rubriq` = '77' WHERE `rubriq` = '63';

在表格中我有两列abonne和rubriq. Abonne是主键,两个是索引.

如果在我的数据库中我有例如:

 abonne  | rubriq  
  84     |   61  
  84     |   62 
  84     |   63

当我运行我的3个查询时,第一个没有问题但是对于第二个,我有一个错误:#1062 – 重复条目’84 -77’为密钥1

如何运行这3个查询但是,当出现这样的错误时,只需删除该行?

谢谢 !

最佳答案 您必须手动删除会导致冲突的记录:

UPDATE `table` SET rubriq = 77 WHERE rubriq = 61;

DELETE t62
FROM   `table` t77
  JOIN `table` t62 USING (abonne)
WHERE  t77.rubriq = 77
   AND t62.rubriq = 62;

UPDATE `table` SET rubriq = 77 WHERE rubriq = 62;

DELETE t63
FROM   `table` t77
  JOIN `table` t63 USING (abonne)
WHERE  t77.rubriq = 77
   AND t63.rubriq = 63;

UPDATE `table` SET rubriq = 77 WHERE rubriq = 63;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读