数据库去重分组查询
直接放执行sql吧
create table tt
(
name varchar(255) null
);
INSERT INTO java_se.tt (name) VALUES ('a');
INSERT INTO java_se.tt (name) VALUES ('b');
INSERT INTO java_se.tt (name) VALUES ('a+b');
INSERT INTO java_se.tt (name) VALUES ('b+a');
INSERT INTO java_se.tt (name) VALUES ('c');
INSERT INTO java_se.tt (name) VALUES ('a+c+b');
INSERT INTO java_se.tt (name) VALUES ('a+b+c');
INSERT INTO java_se.tt (name) VALUES ('a');
进行分组
尝试去+号
select name,replace(t.name,'+','') na from tt as t
排除字母颠倒得重复
不行,对于计算机来说,ab和ba就是两个东西。你全靠sql语句应该很难实现。
你可以选择其他编程语言,读取数据库,将这个字段的值取出来进行处理,在保存进mysql一个新字段中,在根据新字段去重
用MySQL实现超级麻烦的,加一个ID列,先通过join把单行的字符串列拆成多行,然后按ID和name排序,之后通过group_concat收集起来,然后你就得到了排过序的字符串就能通过group去重重复了。
随便换一个支持数组类型的库都简单很多。
我第一眼想到的是KMP,字符串匹配算法,然后将筛选的结果再存到数据库,哈哈