作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个有 692256 行的表,它的数据类似于下面
customer_type_id data
1 G.M (1)
1 GM (1)
1 FORD (K.G)
1 FORD(K.G)
1 Honda
2 GM (1)
2 OTHER
2 OTHER2
在上述情况下,我必须删除基于 customer_type_id 和 data 列的重复项。并且重复项不完全是重复项。例如前两条记录是重复的,接下来的两条记录也是重复的。 data 中可能有一些空格、句点或大括号。所以要获得重复项,我必须在 data 列上运行以下函数
trim( replace(replace(replace(replace(replace(data,'.',''),'(',''),')',''),' ','') ,' ','') )
现在我想从上述案例中删除其中一行并保留另一行的格式。
在上面的例子中我想得到
customer_type_id Data
1 G.M (1)
1 FORD(K.G)
1 Honda
2 GM (1)
2 OTHER
2 OTHER2
事实上任何重复值的记录都可以。但不应像下面这样(在下面的情况下,数据列值空间和大括号已从现有值中删除)
customer_type_id Data
1 GM1
1 FORDKG
1 Honda
2 GM (1)
2 OTHER
2 OTHER2
有什么帮助吗?
非常感谢
问候
基兰
最佳答案
添加一个自动递增键“ID”
delete
from table
where table.ID NOT IN (
select MAX(ID)
from table
group by customer_id, your_function(data) )
我想它应该可以工作,请检查/确认语法,我不确定。想法是删除除一个不同组合之外的所有记录。
关于MYSQL 查询使值成为重复项并从表中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767641/
我是一名优秀的程序员,十分优秀!