lpad:即left padding的简称,意思是左边填充,格式为lpad(str,len,padstr)。
参数说明:
str:要处理的对象
len:处理完后的str长度为len
padstr:如果str的长度小于len指定的值,那么长度差由padstr在左边填充;如果str的长度大于len指定的值,则截取str到len指定的长度。
返回值说明:
lpad函数返回的是处理后的str
如下几个例子简单说明下:
SELECT lpad('zhao',10,'-');
结果:
可以看到"zhao"的长度因为是4自然就小于10,那么10-4=6,这个6的长度差就有padstr(这里是"-")来填充。
再如:
SELECT lpad('zhao',2,'-');
结果:
学是很好学,有什么用呢?比如现在我又这样一个需求,需要在页面上展示出某个表的创建语句,我们知道怎么在mysql里面获取一个表的创建语句“SHOW CREATE TABLE abc”即可(abc是表名),但是要求不止于此哦,页面上不仅要求显示表的创建语句,还要求格式化显示,那你可能说也不难,我语句既然已经可以取到了,使用java处理一下语句不就行了,当然可以,不过我今天不介绍也不想去想怎么样用java来处理这个格式化的问题,我如果想用mysql怎么处理呢?就像下面的这种效果:
上图中,第一列是列名,第二列是列的类型,第三列是comment,第四列是注释的内容。
分析一下,不管你的列名和列类型是什么,我们可以看到,列名+列的类型的长度总是一定的,加入这个长度总共是40个字符,那么列类型的所占据的宽度就应该是"40-length(列名)",不够的话就用空格填充,所以在处理的时候就可以用lpad函数这样子写:
select concat((case when col_no=0 then ' ' else ',' end),col_name,lpad(col_type,40-length(col_name),' ') from
table_field_attr
当然,是用场景并非仅仅如此,我只是拿这个来举个例子,记住它吧,不定什么时候就能帮你省下不少时间。
同理的,还有右填充函数rpad,跟lpad用法类似,我就不赘述了。
点赞
收藏
分享
文章举报
xiaozhuangyumaotao
发布了50 篇原创文章 · 获赞 0 · 访问量 631
私信
关注