表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;
1 回答2.5k 阅读✓ 已解决
5 回答1.5k 阅读
1 回答2.5k 阅读✓ 已解决
2 回答2.2k 阅读
3 回答2.1k 阅读
3 回答647 阅读✓ 已解决
1 回答995 阅读
用find_in_set可以处理, 效率具说不咋行