mysql更新查询,合并两个值

标签 mysql unique-constraint

我有一张这样的 table

USER   |   DATA
----------------
User1  |   123
User1  |   456
User2  |   456
User3  |   123
User4  |   789

并且我对用户数据有一个 UNIQUE 约束。现在我想用“123”替换所有“456”,所以最后我会

USER   |   DATA
----------------
User1  |   123
User2  |   123
User3  |   123
User4  |   789

我真的认为这很容易,你知道如何进行吗?任何帮助将不胜感激 =)

谢谢

最佳答案

“使用 IGNORE 关键字,即使在更新期间发生错误,更新语句也不会中止。不会更新发生重复键冲突的行”

所以, 更新任何不会违反唯一约束的行。 如果有任何行,只需删除它们

UPDATE IGNORE Table SET data=123 WHERE data=456 
DELETE FROM Table WHERE data=456  

关于mysql更新查询,合并两个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293411/

相关文章:

mysql - 使用 C++ Builder 在 Windows 上编译 MySQL

c# - Entity Framework Core - 防止唯一索引上出现多个空值

sql - PostgreSQL - 为什么我不能在不将复合键声明为唯一的情况下基于唯一列创建复合外键?

php - 数据插入错误列计数与 Mysql 数据库中第 1 行的值计数不匹配?

oracle - 为什么删除主键并没有删除其唯一索引?

python - 随机生成 MySQL 行时确保字段唯一

python - 从 MySQL 获取值并用 if 循环它

mysql - 用更有效的方法替换子选择计数

mysql - 如何在mysql中获取括号内的确切字符串

MYSQL SELECT 2 计数相同的字段