判断值进行字符拼接。

chawww 2017-03-15 01:21:32
表B

字段有
a int (值示例:1-10的数字) 代表: 第几节课
b int (值示例:1-10的数字) 代表: 长度

a b
1 3
3 2
5 4
2 1
8 5


想实现的一个字符拼接

如果a=1 b=3 则输出 '1,2,3'
如果a=3 b=2 则输出 '3,4'


...全文
241 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2017-03-16
  • 打赏
  • 举报
回复
那就建个函数呗
create function f(a int,b int)
returns text
begin
	declare re text;
	while b > 0 do
		set re=concat_ws(',', re, a);
		select a+1, b-1 into a, b;
	end while;
	return re;
end;
bighoneybadger 2017-03-16
  • 打赏
  • 举报
回复
select a,b, substring( '1,2,3,4,5,6,7,8,9,',LOCATE(a,'1,2,3,4,5,6,7,8,9,'),b*2) from test; 提供一个基本的思路,至于b*2 如果结果大于10,处理就错误,马上下班了,你自己想法解决'1,2,3,4,5,6,7,8,9,10,11,12,13, 截取长度这块吧,用存储过程处理方便。
bighoneybadger 2017-03-16
  • 打赏
  • 举报
回复
愚钝,终于看明白了
bighoneybadger 2017-03-16
  • 打赏
  • 举报
回复
那如果a=8 b=5 呢结果是什么
freepw 2017-03-15
  • 打赏
  • 举报
回复
可能是不是我没说清楚,我其实就是想实现这样的一个效果 比如我自已建一个函数。 select abc(a,b) from b 如果a=1,b=2 哪就从1开始,b是长度, 最终输出结果为:1,2 如果a=1,b=3 哪就从1开始,b是长度, 最终输出结果为:1,2,3 如果a=1,b=4 哪就从1开始,b是长度, 最终输出结果为:1,2,3,4 ............. 如果a=2,b=2 哪就从2开始,b是长度, 最终输出结果为:2,3 如果a=2,b=5 哪就从1开始,b是长度, 最终输出结果为:2,3,4,5,6
rucypli 2017-03-15
  • 打赏
  • 举报
回复
建个tmp表 id 1 2 3 4 5 select group_concat(B.id,separator ',') from tb A,tmp B where B.id between A.a and A.a+A.b-1

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧