mysql更新查询,合并两个值
我有一张这样的桌子mysql更新查询,合并两个值,mysql,unique-constraint,Mysql,Unique Constraint,我有一张这样的桌子 USER | DATA ---------------- User1 | 123 User1 | 456 User2 | 456 User3 | 123 User4 | 789 我对用户数据有一个唯一的约束。现在我想用“123”替换所有的“456”,所以最后我会 USER | DATA ---------------- User1 | 123 User2 | 123 User3 | 123 User4 |
USER | DATA
----------------
User1 | 123
User1 | 456
User2 | 456
User3 | 123
User4 | 789
我对用户数据有一个唯一的约束。现在我想用“123”替换所有的“456”,所以最后我会
USER | DATA
----------------
User1 | 123
User2 | 123
User3 | 123
User4 | 789
我真的认为这很容易,你知道怎么做吗?任何帮助都将不胜感激()
Thxs
没那么难
但您希望如何处理这种情况:
USER | DATA
--------------
userx | 123
userx | 456
?如果您有一个唯一的约束,那么用户1-123不能有两个条目。所以你最后的结果是正确的。用户2-456也不能有两个条目。因为您有一个与这两个字段组合的唯一约束。“使用IGNORE关键字,即使在更新过程中出现错误,update语句也不会中止。不会更新发生重复键冲突的行。” 所以, 更新不会违反唯一约束的所有行。 如果有行需要删除,只需删除它们
UPDATE IGNORE Table SET data=123 WHERE data=456
DELETE FROM Table WHERE data=456
UPDATE IGNORE
我知道这一定是这么简单的事情。。我想在更新之后,我将不得不删除所有包含456
的行,然后我将继续我的快乐之路Thxs
UPDATE IGNORE Table SET data=123 WHERE data=456
DELETE FROM Table WHERE data=456