常用mysql自带内置函数说明&相似对比

常用mysql内置函数说明&对比:


文章来源传送门:

http://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=2650758315&idx=2&sn=c99a980917357d101e88d4d30cb75794&chksm=f3f9e93ec48e6028c93535635d0aca3d4c319ced2ed9238f5d18ece73a687256bafc4907b817&mpshare=1&scene=23&srcid=0109RpUDjqGUJVuTc1Lc30vV#rd

以下是本人亲测的真实结果输出(navicat -- mysql -- utf-8 )


1.返回字符长度  CHAR_LENGTH(str) & LENGTH(str)
说明:
CHAR_LENGTH(str): 返回字符串字符个数(所有字符都为一个单位) 
LENGTH(str):返回字符串长度(输出字符串长度,在utf-8字符集下,一个中文3字符)

举例:
--字符集:utf-8                                                       输出结果                         comments   
select CHAR_LENGTH('hello world');                            --5
select LENGTH('hello world');                                      --5
select CHAR_LENGTH('你好,世界');                            --5
select LENGTH('你好,世界');                                       --15                                mysql在utf-8字符集下,一个中文3字符



2.字符串拼接  concat  & concat_ws()
说明:
concat: 如果存在null则返回null
concat_ws():直接返回,null就是空字符串,返回剩下部分

举例:
create table zivatest(
a int,
b varchar(30),
c varchar(30),
d varchar(30));
INSERT into zivatest values(1,null,'我是c和弦','');

                                                                                                输出结果                              comments
select concat(a,b,c,d) from zivatest;                                    --null
select concat_ws(a,b,c,d) from zivatest;                              --我是c和弦1                     不知道为什么顺序不对
select concat_ws(b,c,d) from zivatest;                                  --null                                首字段为null,返回还是null



3.进制转换  CONV(N,from_base,to_base)



4.数值格式化  format()
第一个参数保留第二个参数的小数长度,
注意是截取,不是四舍五入,
超过还能补位0呢
                                                                            输出结果                                                  comments
select FORMAT('12.445566',4)                   --12.44556                                           截取式,不四舍五入
select FORMAT('12.445566',8)                    --12.44556600                                       不够小数位能补0喔~




5.替换/插入字符串    INSERT(str,pos,len,newstr)

                                                                                    输出结果                                            comments
select INSERT('abcdefg',2,2,'!替换你!') ;         --a!替换你!defg
select INSERT('abcdefg',100,2,'!替换你!');      --abcdefg                                       首字符超过长度 返回原字符串
select INSERT('abcdefg',2,100,'!替换你!');      --a!替换你!                                替换长度超过长度 完全替换开始字符后的所有
select INSERT('abcdefg',2,0,'!替换你!');          --a!替换你!bcdefg                     替换长度为0   插入




6.返回子字符串开始位置 
INSTR(str,substr)
LEFT(str,len)
RIGHT(str,len)
LOCATE(substr,str)

                                                                                           输出结果                                          comments
select LOCATE('bcd','abcdefg')                                       --2  
select INSTR('abcdefg','bcd');                                          --2 
select INSTR('abcdefg','z');                                               --0                                                   不存在返回0
select INSTR('abc defg',' ');                                              --4                                                     空格也能用喔~




8.变大/小写 UPPER(str) LOWER(str)
                                                                                          输出结果
SELECT LOWER('aaaBBBccc你好');                          --aaabbbccc你好
SELECT UPPER('aaBBBccc你好');                               --AABBBCCC你好



9.去除头(尾)空格  trim  ltrim   rtrim  
                                                                           输出结果
select TRIM('  aa  bb  cc  ');                    --'aa  bb  cc'
select LTRIM('  aa  bb  cc  ');                   --'aa  bb  cc  '
select RTRIM('  aa  bb  cc  ');                   --'  aa  bb  cc'




10.重复字符串: REPEAT(str,count)
                                                                      输出结果
select repeat('你好',2);                              --你好你好



11.REPLACE  替换 返回替换之后整个字符串
                                                                                输出结果
select REPLACE('hello world','l','zz')                  --hezzzzo worzzd
select REPLACE('明天 你好','你','你们')           --明天 你们好



12.SPACE(N)
--返回一个由n空格组成的字符串


13.substring
                                                                                                                   输出结果
SELECT SUBSTRING('abcdgfg' FROM 2 FOR 3);                                         --bcd
SELECT SUBSTRING('abcdefg' FROM 2)                                                   --bcdefg
SELECT SUBSTRING('abcdefg',2)                                                             --bcdefg
SELECT SUBSTRING('abcdefg',2,3)                                                           --bcd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值