MySql常用字符串函数:
在使用这些相关的字符串函数时,我们先创建一个数据库的表,便于我们更清晰的看到
这些字符串函数的作用。
- length:
length:获取参数值的字节个数(注意不是字符个数)
SELECT LENGTH('ruckyone') 结果是8
SELECT LENGTH('ruckyone潘小') 结果是14 不是10
(是字节个数不是字符个数,因编码格式是utf-8,所以一个汉字占3个字节)
- concat:
SELECT CONCAT(str1,str2,...)
SELECT CONCAT(name,'--',nickname,'******') from stringtable
3. lower(str),upper(str):
upper(str):将 str 中的所有小写字母转换为大写
lower(str):将 str 中的所有大写字母装换为小写
SELECT UPPER('ruckyone')
SELECT LOWER('RUCKYONE')
扩展:将name变大写,将nikcname变小写,然后拼接
SELECT CONCAT(UPPER(NAME),'---',LOWER(NICKNAME)) AS 姓名 FROM stringtable
- substr、substring 截取函数:
SELECT SUBSTR('RUCKYONE是一个帅气的小伙',10) as 截取
SELECT SUBSTR('RUCKYONE是一个帅气的小伙',2,5) as 截取
案例:将name中首字符大写,nikcname中首字符大写,其它字符小写,name和nikcname
中间用_拼接,然后显示出来。
SELECT CONCAT(UPPER(SUBSTR(name,1,1)),LOWER(SUBSTR(name,2)),'_',
UPPER(substr(nickname,1,1)),LOWER(substr(nickname,2))) as 综合
FROM stringtable
- instr(str,substr) 从字符串str中返回字串substr第一次出现的位置
SELECT INSTR('RUCKYONE是一个善良的小伙','善良')
- trim 取前后字符串,默认是取空格,也可以指定:
SELECT trim(' RUCKYONE ') AS 去掉前后空格
// 指定 'a'
SELECT trim('a' from 'aaaa潘小蓝aaaaa')
- lpad(str,len,padstr) 在str的左边填充字符串padstr到指定长度len
// 让原字符串到指定长度
SELECT LPAD('潘小蓝',10,'x')
结果: xxxxxxx潘小蓝
// 如果指定的长度 <= 原有长度,最后得到的字符串从左到右取 n 个字符
SELECT LPAD('潘小蓝',2,'x')
结果: 潘小
- rpad(str,len,padstr) 在str的右边填充字符串padstr到指定长度len
// 让原字符串到指定长度
SELECT LPAD('潘小蓝',10,'x')
结果:潘小蓝xxxxxxx
// 如果指定的长度 <= 原有长度,最后得到的字符串从左到右取 n 个字符
SELECT LPAD('潘小蓝',2,'x')
结果: 潘小
- replace(str,from_str,to_str) 在字符串中查找所有的字串from_str,用to_str替换
SELECT REPLACE('潘小蓝是一个帅气的帅气小伙','帅气','善良') as 替换
后记:
在这里只是列举几个比较常用的函数,在 动态Mysql 中非常常用,如果有其他需要,就可以
去请教度娘啦。嘻嘻。