删除同一字段中的重复字符串

时间:2016-04-08 14:18:36

标签: mysql

我的数据库中碰巧有一些“坏”数据,如下所示:

ID | name        |
 1 | Apple Apple | 
 2 | Banana      |
 3 | Orange      |

我继承了一些重复的名字,如“Apple Apple”。

如何直接在MySQL中删除重复的“Apple”,而不是使用PHP或其他服务器端脚本。

期望的结果应该只是“Apple”

2 个答案:

答案 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