原来的问题如下:
表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 刚才不小心结贴了 请回复一下给你补分……
表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 刚才不小心结贴了 请回复一下给你补分……
id wo an
1 张三 是人
2 张三 是我朋友
3 李四 是人
4 李四 是工程师 哪些是要删除的?
[align=center]==== 思想重于技巧 ====
[/align]
1 张三 是人
2 张三 是我朋友
3 李四 是人
4 李四 是工程师
5 王五 是人
.
.
10 李四 是谁
11 赵六 是人
.
.
类似字段wo中 张三有两条 李四 有三条 那就合并字段an中的数据到第一条中 然后删除剩下两条
而字段wo中王五(id=5) 赵六(id=11)在表中只有一条 那就保持不变最后保存为新的表 就是我要的结构
而现在可以查询到合并的内容(只有那些有重复数据的部分) 产生严重的问题是an字段的数据都丢失了一部分(有点像长度过大而截断了)不知道我有没有说清了我的表有几W的数据 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]
如果更长,则只能换 MEDIUMTEXT 16,777,215 或 LONGTEXT 4,294,967,295
[align=center]==== 思想重于技巧 ====
[/align]
你现在数据如下
id wo an
1 张三 是人
2 张三 是我朋友
3 李四 是人
4 李四 是工程师
5 王五 是人
10 李四 是谁
11 赵六 是人 你要得到什么样的结果?张三 是人 是我朋友
李四 是人 是工程师
王五 是人
赵六 是人行数多于2行的只取前2行合并。这样的理解是否正确?
[align=center]==== 思想重于技巧 ====
[/align]
FROM content
GROUP BY wo
HAVING count( * ) >1
ORDER BY ID
用这个查询时可以实现查询出合并后的那些有重复wo字段的所有数据
但我需要整个数据 包含那些wo字段没有重复的 就是包含 王五 赵六
然后需要解决的是 数据被截断的问题……不好意思 不知道能不能说清了……
默认的最大值是1024另外注意变量 max_allowed_packetgroup_concat_max_len < group_concat_max_len
[align=center]==== 思想重于技巧 ====
[/align]
group_concat_max_len < max_allowed_packet ?
设置多少比较合适?
[align=center]==== 思想重于技巧 ====
[/align]