原来的问题如下:
表content如下所示: id     wo    an 
1      张三   是人 
2      张三   是我朋友 
3      李四   是人 
4      李四   是工程师 



类似这样  相同wo字段的  an字段内容就合并 
结果为 
1  张三  是人 是我朋友 
2  李四  诗人 是工程师 请高手解答  SELECT ID, wo, GROUP_CONCAT( CONCAT( an )) as aa 
FROM content 
GROUP BY wo 
HAVING count( * ) >1 
ORDER BY ID 用上面的语句可以实现查询到我需要的数据(也就是重复项合并)
但产生一个问题  an字段中合并的条目并不完整 总是缺少比较多的字符串其次 我想实现查询所有结果 且删除那些已经合并的数据行该如何解决和实现?感谢liuyann 刚才不小心结贴了 请回复一下给你补分……

解决方案 »

  1.   

    字段an是longtext类型 存储的数据比较多
      

  2.   

    但产生一个问题  an字段中合并的条目并不完整 总是缺少比较多的字符串 能举例说明,没看明白。其次 我想实现查询所有结果 且删除那些已经合并的数据行
    id     wo    an 
    1      张三   是人 
    2      张三   是我朋友 
    3      李四   是人 
    4      李四   是工程师 哪些是要删除的?
        [align=center]====  ====
    [/align]
      

  3.   

    昏 刚才突然回复不了 白打了我再解释一下 刚才不好意思id     wo    an  
    1      张三   是人  
    2      张三   是我朋友  
    3      李四   是人  
    4      李四   是工程师  
    5      王五   是人
    .
    .
    10     李四   是谁
    11     赵六   是人
    .
    .
    类似字段wo中 张三有两条   李四 有三条  那就合并字段an中的数据到第一条中 然后删除剩下两条
    而字段wo中王五(id=5) 赵六(id=11)在表中只有一条 那就保持不变最后保存为新的表 就是我要的结构
    而现在可以查询到合并的内容(只有那些有重复数据的部分) 产生严重的问题是an字段的数据都丢失了一部分(有点像长度过大而截断了)不知道我有没有说清了我的表有几W的数据 an字段内容都比较长~~ 
      

  4.   

     id     wo    an   
     1      张三   是人   
     2      张三   是我朋友   
     3      李四   是人   
     4      李四   是工程师   
     5      王五   是人 
     10     李四   是谁 
     11     赵六   是人 
     . 
     . 
     类似字段wo中 张三有两条   李四 有三条  那就合并字段an中的数据到第一条中 然后删除剩下两条 
     而字段wo中王五(id=5) 赵六(id=11)在表中只有一条 那就保持不变  id     wo    an   
     1      张三   是人   
     2      张三   是我朋友   
     3      李四   是人   
     4      李四   是工程师   
     5      王五   是人 
     10     李四   是谁 
     11     赵六   是人 
      
    如何确认哪一行被删除?如果>2行? id最大的一行?
        [align=center]====  ====
    [/align]
      

  5.   

     而现在可以查询到合并的内容(只有那些有重复数据的部分) 产生严重的问题是an字段的数据都丢失了一部分(有点像长度过大而截断了)  AN是什么类型?varchar ?如果VARCHAR的话,最长可以支持 65,532  长度。超出就被TRIM了。
    如果更长,则只能换 MEDIUMTEXT 16,777,215   或 LONGTEXT 4,294,967,295 
        [align=center]====  ====
    [/align]
      

  6.   

    是LONGTEXT 可还是被截断了 有些条目内容并不多也会被截断
      

  7.   

     有些糊涂了,先关注第一个问题?
    你现在数据如下
      id     wo    an    
      1      张三   是人    
      2      张三   是我朋友    
      3      李四   是人    
      4      李四   是工程师    
      5      王五   是人  
      10     李四   是谁  
      11     赵六   是人 你要得到什么样的结果?张三   是人 是我朋友
    李四   是人 是工程师 
    王五   是人
    赵六   是人行数多于2行的只取前2行合并。这样的理解是否正确?
        [align=center]====  ====
    [/align]
      

  8.   

    不管两条 三条 还是100条……都需要合并SELECT ID, wo, GROUP_CONCAT( CONCAT( an )) as aa  
    FROM content  
    GROUP BY wo  
    HAVING count( * ) >1  
    ORDER BY ID  
    用这个查询时可以实现查询出合并后的那些有重复wo字段的所有数据
    但我需要整个数据 包含那些wo字段没有重复的 就是包含 王五  赵六
    然后需要解决的是 数据被截断的问题……不好意思 不知道能不能说清了……
      

  9.   

    检查一下你的系统变量, group_concat_max_len 
    默认的最大值是1024另外注意变量 max_allowed_packetgroup_concat_max_len < group_concat_max_len 
        [align=center]====  ====
    [/align]
      

  10.   

    group_concat_max_len  < group_concat_max_len  ?
    group_concat_max_len  < max_allowed_packet ?
    设置多少比较合适?
      

  11.   

    你估计你的合并后,最长的会有多少,就设到那么大好了。
        [align=center]====  ====
    [/align]
      

  12.   

    可以改原来我看了phpmyadmin里面没有刷新