参考:
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)