mysql 列拆分 合并 查询重复数据

表a

id goods_name goods_price
1 香蕉 5 元/kg
2 苹果 6 元/kg
3 橙子 8.5 元/kg
表b
id goods_info
---- ----
1 香蕉:5 元/kg
2 苹果:6 元/kg
3 橙子:8.5 元/kg
由表a得到表b,,,由表b得到表a
SELECT
	id,
	CONCAT( goods_name, ':', goods_price ) AS goods_info 
FROM
	good;
SELECT
	id,
	SUBSTRING_INDEX( goods_info, ':', 1 ) AS goods_name,
	SUBSTRING_INDEX( goods_info, ':',- 1 ) AS goods_price 
FROM
	good1;
id goods_name goods_price
1 香蕉 5 元/kg
2 苹果 6 元/kg
3 香蕉 5 元/kg
4 苹果 6 元/kg
5 橙子 8.5/kg
6 香蕉 5 元/kg
7 苹果 6.3 元/kg
8 橙子 8.5 元/kg
9 草莓 6.3 元/kg
查找出重复的数据,并删除重复只保留id最小的记录
SELECT
	* 
FROM
	good2 
WHERE
	id IN ( SELECT MIN( id ) FROM good2 GROUP BY goods_name HAVING COUNT( goods_name ) > 1 OR COUNT(goods_name) =1 );

这里是把结果已查询的形式得出来了,删除语句自行修改。
SELECT MIN( id ) FROM good2 GROUP BY goods_name HAVING COUNT( goods_name ) > 1 OR COUNT(goods_name) =1;
这语句是得出重复的且id最小的记录和不重复的记录的id。

posted @ 2020-09-11 14:25  测试路漫漫  阅读(395)  评论(0)    收藏  举报