【发布时间】:2015-06-08 10:59:31
【问题描述】:
我的表中有一个名为“权限”的列。权限是字符串,可以是:
"r","w","x","rw","wx","rwx","xwr"
等请注意字符串中字符的顺序不是固定的。我想GROUP_CONCAT() 在我的表的“权限”列上。然而,这会导致非常大的字符串。
示例:"r","wr","wx" 连接的组是 "r,wr,wx",但应该是 "r,w,x" 或 "rwx"。使用distinct() 子句似乎没有多大帮助。我在想,如果我可以检查权限值是否是另一列的子字符串,那么我不应该将它连接起来,但我似乎没有找到实现这一点的方法。
任何仅使用字符串函数的基于列的方法也会受到欢迎。
编辑: 以下是一些示例数据:
+---------+
| perm |
+---------+
| r,x,x,r |
| x |
| w,rw |
| rw |
| rw |
| x |
| w |
| x,x,r |
| r,x |
+---------+
连接的结果应该是:
+---------+
| perm |
+---------+
| r,w,x |
+---------+
我无法控制数据源并且不想创建新表(因为受限权限和内存限制)。我正在寻找将每列值转换为所需格式的后处理步骤。
【问题讨论】:
-
提示:在这里考虑 SET,而不是文本字符串。
-
也许你的几行样本数据和预期结果会帮助人们更好地理解你的问题。
标签: mysql group-by group-concat