我有一张这样的 table -
uid test1 test2 test3 test4 test5
10 x1 x2 x3 x4 x5
11 x6 x7 x8 x9 x10
12 x11 x12 x13 x14 x15
13 x16 x17 x18 x19 x20
14 x16 x17 x18 x19 x20
15 x21 x22 x23 x24 x25
16 x26 x27 x28 x29 x30
从上表中可以看出,uid 为 13 和 14 的行对于除 uid 之外的所有列都具有相同的值。
所以我想过滤除列 uid 之外具有完全相同值的所有行(即列 uid 可以延迟值),在最终结果中我希望行包含重复或相似的行,并且在 它是 uid 列,所有重复的 uid 以逗号分隔格式。
预期结果 -
uid test1 test2 test3 test4 test5
10 x1 x2 x3 x4 x5
11 x6 x7 x8 x9 x10
12 x11 x12 x13 x14 x15
13,14 x16 x17 x18 x19 x20
15 x21 x22 x23 x24 x25
16 x26 x27 x28 x29 x30
我尝试使用DISTINCTROW ,但它要求所有列都相同才能认为行是重复的。
任何建议表示赞赏。
编辑:我使用 MYSQL 作为数据库。
最佳答案
使用您希望在输出中不同的列进行分组,应用 GROUP_CONCAT()
在要显示为列表的一列或多列上。
SELECT
GROUP_CONCAT(uid),
test1, test2, test3, test4, test5
FROM atable
GROUP BY test1, test2, test3, test4, test5
关于mysql - 过滤结果中的重复行不包括一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491969/