我有一个包含少量代码的字符串的表。
我需要从字符串中查询不同的代码。
这就是表格的样子(id - > string):
578244--> [Message [code=2502, source=FILE], Message [code=2502, source=FILE], Message [code=2502, source=FILE], Message [code=2502, source=FILE], Message [code=2502, source=FILE]]
578649--> [Message [code=1503, source=FILE], Message [code=2502, source=FILE], Message [code=2502, source=FILE], Message [code=2502, source=FILE], Message [code=9002, source=FILE]]
578773--> [Message [code=1503, source=FILE], Message [code=2502, source=FILE], Message [code=2502, source=FILE]]
578969--> [Message [code=0500, source=FILE], Message [code=2502, source=FILE], Message [code=2502, source=FILE], Message [code=2502, source=FILE], Message [code=9002, source=FILE]]
我需要的结果是:
578244 --> 2502
578649 --> 1503,2502,9002
578773 --> 1503,2502
578969 --> 0500,9002
答案 0 :(得分:1)
尝试这样的事情:
SELECT if(a=b,a,concat(a,',',b)) as results from(
select right(substring_index('[Message [code=2502, source=FILE], Message [code=2502,source=FILE], Message [code=2502, source=FILE], Message [code=1111, source=FILE], Message [code=2502, source=FILE]]',', s',1),4) as a,
right(substring_index('[Message [code=2502, source=FILE], Message [code=2502,source=FILE], Message [code=2502, source=FILE], Message [code=1111, source=FILE], Message [code=2502, source=FILE]]'
,', s',2),4) as b
) tablename;
当然,你必须适应你的#34;列#34;并适应IF
声明。