我的数据库中碰巧有一些“坏”数据,如下所示:
ID | name |
1 | Apple Apple |
2 | Banana |
3 | Orange |
我继承了一些重复的名字,如“Apple Apple”。
如何直接在MySQL中删除重复的“Apple”,而不是使用PHP或其他服务器端脚本。
期望的结果应该只是“Apple”
答案 0 :(得分:0)
UPDATE table_name SET name =' Apple' WHERE ID = 1;
答案 1 :(得分:0)
您可以拆分字符串并进行比较。 以下脚本是用MSSQL编写的,但你可以理解这个想法。
declare @z varchar(100);
set @z = 'Apple Apple'
--First Part, Second part
Select SUBSTRING(@z, 0, ((LEN(@z)+1)/2) + 1), SUBSTRING(@z, ((LEN(@z)+1)/2) + 1, LEN(@z))
您的查询应该是
Update Table_Name set
Column_Name = Case
When (firstPart = SecondPart)
Then FirstPart
Else Column_Name
End
Update Table_Name
set Column_Name = Case
when (SUBSTRING(@z, ((LEN(@z)+1)/2) + 1, LEN(@z)) = SUBSTRING(@z, 0, ((LEN(@z)+1)/2) + 1))
Then SUBSTRING(@z, ((LEN(@z)+1)/2) + 1, LEN(@z))
Else Column_Name
End