MySQL常用的单行函数汇总2——字符串函数

字符串函数:

1 SELECT ASCII('Abcdfsf'),CHAR_LENGTH('hello'),CHAR_LENGTH('我们'),
2 LENGTH('hello'),LENGTH('我们')
3 FROM DUAL;

ASCII('Abcdef'):获取对应字符串的第一个字符的ASC码的值   CHAR_LENGTH:获取字符串的长度(将汉字也看做一个字符)   LENGTH:获取字符串的长度(将汉字看作三个字符)

 

1 SELECT CONCAT(emp.last_name,' worked for ',mgr.last_name) "details"

CONCAT('str1','str2','str3'):将str1,str2,str3这三个字符串进行相连接(不同字符串即为参数,用‘,’隔开,不要用加号)

1 SELECT CONCAT_WS('-','hello','world','hello','beijing')#得到hello-world-hello-beijing
2 FROM DUAL;

CONCAT_WS('str','str1','str2','str3'):将str1,str2,str3这三个字符串用str字符串进行连接

 

1 #字符串的索引是从1开始的!
2 SELECT INSERT('helloworld',2,3,'aaaaa'),REPLACE('hello','lol','mmm')#输出haaaaaoworld ,  hello
3 FROM DUAL;

INSERT('str1',index,length,'str2'):index1表示从哪里开始插入,length表示从index开始要替换的长度有多长,str1为准备被替换的字符串,str2为要拿去替换的字符串

REPLACE('str','str1','str2'):要操作的字符串str,str1为在str中去寻找的要替换的字符串为str1,如果找到对应的str1则将其替换成str2

 

1 SELECT UPPER('HelLo'),LOWER('HelLo')
2 FROM DUAL;

UPPER:将字符串转换为大写,LOWER:将字符串转换为小写

 

1 SELECT LEFT('hello',2),RIGHT('hello',3),RIGHT('hello',13)
2 FROM DUAL;

LEFT('str',length):在str中从左端开始向右取length个字符所得的结果 

RIGHT('str',length):在str中从右端开始向左取length个字符所得的结果

 

1 # LPAD:实现右对齐效果
2 # RPAD:实现左对齐效果
3 SELECT employee_id,last_name,LPAD(salary,10,' ')
4 FROM employees;

LPAD(属性,length,'char'):要对其的属性名,对其的字符串长度,实现对其所进行的填充字段(即字符串不足length位时用char字符进行填充)

 

1 LTRIM('    h  el  lo   ')

去掉字符串中的首尾空格

1 TRIM('oo' FROM 'ooheollo')

去掉ooheollo中的oo子字符串

 

1 SELECT REPEAT('hello',4),LENGTH(SPACE(5)),STRCMP('abc','abe')
2 FROM DUAL;

REPEAT('str',times):将字符串str重复times次后得到的新字符串

STRCMP('str1','str2'):比较str1和str2的asc码差值,如果差值<0返回-1,=0返回0,>0返回1

 

1 SELECT SUBSTR('hello',2,2),LOCATE('lll','hello')
2 FROM DUAL;

SUBSTR('str',begin,length):获取str中的子字符串,从begin下标开始,长度为length

LOCATE('lll','hello'):寻找字符串'lll'在‘hello'中的位置,如果找到则返回第一个字符串下标位置,否则返回0

 

1 SELECT ELT(2,'a','b','c','d'),FIELD('mm','gg','jj','mm','dd','mm'),
2 FIND_IN_SET('mm','gg,mm,jj,dd,mm,gg')
3 FROM DUAL;

ELT(index,'s1','s2','s3','s4'):如index = 2,则返回s2的值 

FIELD('str','s1','s2','s3'):寻找str在s1,s2,s3中第一次出现的位置,没有出现则返回0

FIELD_IN_SET('str','s1,s2,s3'):与FIELD基本类似,只是其将3个字符串合成了一个字符串,子字符串间用逗号隔开

 

1 SELECT employee_id,NULLIF(LENGTH(first_name),LENGTH(last_name)) "compare"#获取这两者名字中较长的那个字符串的长度
2 FROM employees;

 

posted @ 2022-03-27 15:27  jue1e0  阅读(40)  评论(0)    收藏  举报