MYSQL笔记_字符串函数

本文介绍了SQL中用于字符串操作的多个函数,如ASCII、CHAR_LENGTH、LENGTH、CONCAT、INSERT、REPLACE等,以及字符大小写转换、截取、填充、重复、比较等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    
1,ASCII(S)只读取第一个字符

        SELECT ASCII(`ASDFGHJKL`)
        FROM DUAL;        


2,CHAR_LENGTH(S) 统计(``)里有几个字符    
    LENGTH(S)统计(``)里有几个字节 

        SELECT CHAR_LENGTH(`hello`),CHAR_LENGTH(`我们`),LENGTH(`hello`)LENGTH(`我们`)
        FROM DUAL;           


3,将多个字符串拼接到一起


        CONCAT(S1,S2...Sn) 将字符连接 

        SELECT CONCAT(em.last_name,`worked for`,mgr.last_name) AS `details`
        FROM employees em JOIN employees mgr
        ON em.employee_id = mgr.manager_id
        输出结果:TOM workde for JERRY

        CONCAT(X,S1,S2...Sn) 将字符用x连接  

        CONCAT_WS(X,S1,S2...Sn)    将字符用x连接            
        SELECT CONCAT_WS(`-`,`hell`,`world`,`hello`,`beijing`)
        FROM DUAL;
        输出结果:hell-world-hello-beijing

4,替换

        INSERT(str,idx,len,replacestr) (目标字符,起点,选择x个,变为`y`)  

        SELECT INSERT(`helloworld`,2,3,`aaa`)
        FROM DUAL;
        输出结果:haaaoworld ——> ell被替换


           
        REPLACE(str,a,b) 用b替换a  

        SELECT REPLACE(`helloworld`,`ll`,`mm`)
        FROM DUAL;
        输出结果:hemmoworld
        ll被替换l没有被替换


5,大小写


        UPPER(S) , UCASE(S)变大写 
        LOWER(S) , LCASE(S)变小写

        SELECT UPPER(`hello`),UCASE(`hello`) , LOWER(`HELLO`),LCASE(`HELLO`)
        FROM DUAL;   


 
6,截取


        LEFT(str,n)
        RIGHT(str,n)(目标,从左开始截取的数量)

        SELECT LEFT(`hello`,2),RIGHT(`hello`,2)
        FROM DUAL;
        输出结果:`he` `lo`     


   
7,填充


        LPAD(str,len,pad)从左边开始用pad填充目标字符串达到len长度
        RPAD(str,len,pad)从右边开始用pad填充目标字符串达到len长度

        SELECT LPAD(`hello`,8,`-`),RPAD(`hello`,8,`-`)
        FROM DUAL;
        输出结果:`---hello` `helllo---`


8,去空格


        LTRIM(S)去除左空格
        RTRIM(S)去除右空格
        TRIM(S)去除开始与结尾的空格

        SELECT LTRIM(`   HE  LL  O  `),RTRIM(`   HE  LL  O  `),TRIM(`   HE  LL  O  `)
        FROM DUAL;    



9,去字符


        TRIM(S1 FROM S)去掉S开头和结尾的S1
        TRIM(LEADING S1 FROM S)去掉S头部的的S1
        TRIM(TRAILING S1 FROM S)去掉S尾部的的S1

        SELECT TRIM(`OO` FROM `OOHEOLLOO`),TRIM(LEADING `OO` FROM `OOHEOLLOO`),TRIM(TRAILING `OO` FROM `OOHEOLLOO`)
        FROM DUAL;
        输出结果:'HEOLL' 'HEOLLOO' 'OOHEOLL'      



10,重复


        REPEAT(str,n)重复n次

        SELECT REPEAT(`HELLO`,4)
        FROM DUAL;
        输出结果:'HELLOHELLOHELLOHELLO'    


11,空格  


        SPACE(n)n个空格

        SELECT SPACE(5)
        FROM DUAL;    



12,比大小


        STRCMP(S1,S2)左边大是1,右边大是-1

        SELECT STRCMP(`abc`,`abd`)
        FROM DUAL;
        输出结果:-1    



13,取字符


        SUBSTR(s,index,len)

        从s里,index开头,取len个字符

        SELECT SUBSTR(`HELLO`,2,1)
        FROM DUAL;
        输出结果:'E'


            
        ELT(M,S1,S2...Sn)

        取第Sm个字符    

        SELECT ELT(3,`ABC`,`DEF`,`GHI`,`JKL`)
        FROM DUAL;
        输出结果:'GHI'            



14,定位


        LOCATE(substr,str)

        从substr里定位str在substr里首次出现的位置

        SELECT LOCATE(`L`,`HELLO`)
        FROM DUAL;
        输出结果:3             



         FIELD(S,S1...Sn)  

        定位S在S1,S2...Sn里里一次出现的位置 

        SELECT FIELD(`AA`,`BB`,`CC`,`AA`,`BB`,`CC`)
        FROM DUAL;
        输出结果:3           


         
         FIND_IN_SET(S1,S2)

        定位S在S2里里一次出现的位置 

        SELECT FIND_IN_SET(`AA`,`BB,CC,DD,AA,BB`)
        FROM DUAL;
        输出结果:4    



15,反转


        REVERSE(S)

        SELECT REVERSE(`ABC`)
        FROM DUAL;
        输出结果:'CBA'            



16,查找相同NULL  


        NULLIF(value1,value2)

        SELECT NULLIF(1,1),NULLIF(3,2)
        FROM DUAL;
        输出结果:'NULL' '3'            

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值