您好,欢迎访问一九零五行业门户网

一个sql相同数据合并问题

我现在有个a表, 是这样的       大家可以先跳过表 看下一句我想要什么
name        cart
黄鑫         坏人&同学
卢秀秀      同学
刘毅         朋友&同学
我现在要新建b表把a表的cart另存进来    b表像这样
id         cartname
1         同学
2         朋友
3         坏人
也就是数据去重存入到新的表中       请问这该用怎样的代码来完成呢
回复讨论(解决方案) 不明白楼主讲的两个表的关系,也不清楚楼主的意图
建议直接用脚本来处理这个问题,基本上无法用一条sql解决(实际上也不建议这样)
程序定期执行相关处理逻辑,然后把最新数据插入到b表,至于去重操作,脚本逻辑很好处理就不多说了
insert into test(cartname)select cart from userinfo group by cart;
我弄了半天   就像是上边这样的  不过还有个&符号去重的问题
其实就是把a表里的分类标签字段 去重移入到新的表里
select substring_index(cart,'&',1) from a表
union
select substring_index(substring_index(cart,'&',2),'&',-1) from a表
union
select substring_index(substring_index(cart,'&',3),'&',-1) from a表
套红的重复若干遍
insert into table_b( cartname ) 
(
select distinct (cart) from table_a
)
&符号分割的部分也需要去重的话,用php脚本来处理效率可能会高一点
select substring_index(cart,'&',1) from a表
union
select substring_index(substring_index(cart,'&',2),'&',-1) from a表
union
select substring_index(substring_index(cart,'&',3),'&',-1) from a表
套红的重复若干遍
好吧   版主就是版主  用你给的代码已经成功了,   不过我只执行了一次 好像没什么问题了  谢谢你版主
$intosql=insert into 表b(cart)select substring_index(cartname,'&',1) from 表aunionselect substring_index(substring_index(cartname,'&',2),'&',-1) from 表aunionselect substring_index(substring_index(cartname,'&',3),'&',-1) from 表a;mysql_query($intosql);
你现在的 cart 中只有一个'&',但以后也可能有多个
union
select substring_index(substring_index(cart,'&', 3),'&',-1) from a表
的个数应多于'&'的个数,这样才不易出错
注意那个 3 是顺号,要逐一递增
你现在的 cart 中只有一个'&',但以后也可能有多个
union
select substring_index(substring_index(cart,'&', 3),'&',-1) from a表
的个数应多于'&'的个数,这样才不易出错
注意那个 3 是顺号,要逐一递增
哦 那就是有几个&符号就加几句
union
select substring_index(substring_index(cartname,'&',[color=#0000ff]3),'&',-1) from 表a[/color]
是吗  然后那个蓝色数字是递增的   那如果是1个&符号的话 就一句select substring_index(cart,'&',1) from a表就可以了吗   那我是直接按你的用到3了 也没问题的吧
没有问题,有问题(取出的项不对)时再加
显然是加的越多效率越低
没有问题,有问题(取出的项不对)时再加
显然是加的越多效率越低
恩  谢谢版主
其它类似信息

推荐信息