表a结构如下
column1 | column2 |
---|---|
abc | 1,2,3 |
表b结构如下
column1 | column2 |
---|---|
1 | a |
2 | b |
3 | c |
怎么查出结果为
column1 | column2 |
---|---|
abc | a,b,c |
表a结构如下
column1 | column2 |
---|---|
abc | 1,2,3 |
表b结构如下
column1 | column2 |
---|---|
1 | a |
2 | b |
3 | c |
怎么查出结果为
column1 | column2 |
---|---|
abc | a,b,c |
首先要说下让mysql做这种工作简直是作死。。
给你一个拆分的方法,拆完了联表再使用group_concat就行了:
例:a表c字段为1,2,3,4,5,6,7,8,将c拆为1-8的数字
随便找一个表t有自增字段id,自增值从1到1000,只要你的逗号分隔的字串逗号的个数少于这个1000就可以了,要注意1-1000不跳值,比如1,2,3,4,5,7少了个6是不行的,执行下面的sql就可以将c字段拆分成1-8的值
SELECT substring_index(substring_index(a.c,',',t.id),',',-1)
FROM a join t
ON t.id<=CHAR_LENGTH(a.c)-CHAR_LENGTH(REPLACE(a.c,',',''))+1;
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
用find_in_set可以处理, 效率具说不咋行