MySql的填充字符串函数LPAD及注意点

10 篇文章 0 订阅
5 篇文章 0 订阅

参考:

https://www.cnblogs.com/QQParadise/articles/4705615.html

https://blog.csdn.net/sinat_38899493/article/details/78710482


MySql中有许多函数,日前用到一个较少使用的函数 lpad(str,len,padstr)

  • LPAD(str,len,padstr):字符串左填充函数

字符串 padstr对 str进行左边填补直至它的长度达到 len个字符长度,然后返回 str。如果 str的长度长于 len',那么它将被截除到 len个字符。

mysql> SELECT LPAD('hi',6,'abc'); -> 'abcahi'

mysql> SELECT LPAD('hi',8,'ab'); -> 'abababhi'

  • RPAD(str,len,padstr):字符串右填充函数

用字符串 padstr对 str进行右边填补直至它的长度达到 len个字符长度,然后返回 str。如果 str的长度长于 len',那么它将被截除到 len个字符。

mysql> SELECT RPAD('hi',5,'?'); -> 'hi???'

  • 注意点1:如果指定的len小于str的长度,此时将进行截取,并且无论是LPAD还是RPAD,都是保留靠前的字符.

如:LPAD('abcdef',4,'?'); 和RPAD('abcdef',4,'?');结果都为abcd

 

  • 注意点2:当 LPAD(str,len,padstr)中的str为int类型或者padstr为int类型(非char类型)时,此时,使用navicat可以正常执行,但是我遇到在项目中会乱码出错,建议先转为char类型在进行填充。

例子如下:

页面中int类型的出现乱码:

这里使用cast进行类型转换后(使用convert也可以,concat则报错),问题解决: 

 


Tip:mysql的类型转换有三种办法:(参考:https://blog.csdn.net/hxpjava1/article/details/36438061

可使用函数

1,cast( XX AS TYPE)

2,convert(XX,TYPE)

CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
这个类型 可以是以下值其中的 一个:
BINARY[(N)]
CHAR[(N)]  这里的N不可少
DATE
DATETIME
DECIMAL
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]

3,concat(),(int->char可使用此方法,字符串连接,此处使用也无法解决问题)

用法区别如下:


结束和声明

以上纯属个人观点和体会,相关的资料和观点来自网络的朋友们!
希望这篇文章能对你有所帮助! 
欢迎大家来一起讨论分享干货,或者批评指正! 
更加热切盼望各路大神前辈给些指导和建议!
转载请注明出处!或者联系我!(chenruijia_java@163.com)

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值