· 8 years ago · Mar 10, 2018, 09:34 AM
1set @xs = '3, 1, 4, 1, 5, 9, 2, 6, 5';
2
3drop table if exists num_chars;
4create table num_chars(id int not null);
5insert into num_chars values (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
6
7drop table if exists nums;
8create table nums as (
9 select n1.id + (n2.id * 10) + (n3.id * 100) as id
10 from num_chars n1, num_chars n2, num_chars n3);
11
12select
13 x
14from (
15 select
16 num
17 , trim(substring_index(substring_index(@xs, ',', num), ',', -1)) as x
18 from (
19 select id as num from nums
20 where id >= 1
21 and id <= (length(@xs) - length(replace(@xs, ',', '')) + 1)
22 ) as nums
23 ) as xs
24group by x having count(x) < 2
25order by min(num);