一、字符串处理函数 1、REPLACE()字符串替换 语法: REPLACE(str,old_str,new_str); 含义: 将str中的old_str替换为new_str字符串。 注意:当搜索要替换的文本时,MySQL使用区分大小写匹配来执行要替换的字符串搜索。 示例: 将"hello world!"中hello字符串替换为hi。 SELECT REPLACE('hello world!','hello','hi'); 运行结果:hi world! 2、INSERT(STR1,INDEX,LEN,STR2) 语法: insert(str1,index,len,str2) 含义: 用str2从str1的index位置替换str1的len个元素 示例: SELECT INSERT('hello world',7,5,'tom'); 运行结果:hello tom 3、SUBSTRING()从字符串中提取子字符串 语法: SUBSTRING(string,position); SUBSTRING(string FROM position); SUBSTRING(string,position,length); SUBSTRING(string FROM position FOR length); 含义: 从特定位置开始的字符串返回一个给定长度的子字符串。 包含几个参数: 1>string参数是要提取子字符串的字符串。 2>position参数是一个整数,用于指定子串的起始字符,position可以是正或负整数。 如果position为正,则SUBSTRING函数从字符串的开始处提取子字符串。 3>length是一个正整数,用于指定子字符串长度。 示例: SELECT SUBSTRING('hello mysql', 6); 运行结果:mysql SELECT SUBSTRING('hello mysql' FROM 6); 运行结果:mysql SELECT SUBSTRING('hello world!',1,5); 运行结果:hello SELECT SUBSTRING('hello world!' FROM 1 FOR 5); 运行结果:hello SELECT SUBSTRING('hello world!' FROM -6 FOR 5); 运行结果:world 4、SUBSTRING_INDEX(str,"/",-1) 语法: SUBSTRING_INDEX(str,delim,count); 含义: 在定界符delim及count出现前,从字符串str返回自字符串。若count为正值,则返回最终定界符(从左边开始) ,若为-1则是从后往前截取; 示例: SELECT substring_index('hello/world!', '/', 1); 运行结果:hello SELECT substring_index('hello/world!', '/', -1); 运行结果:world! 5、substr()函数 语法: substr(string str,num start,num length); 含义: 返回从字符串str中指定位置start开始截取指定长度length的字符串,start从1开始; 示例: SELECT substr('hello world!',1,5); 运行结果:hello 6、LOCATE(substr,str) 字符串匹配 语法: 1)LOCATE(str1,str) 2)LOCATE(str1,str,pos) 含义: 1)函数返回字符串str1在str中第一次出现的位置。如果str1在str中不存在,返回0。 2)函数返回字符串str1在str中的第pos位置后第一次出现的位置。如果str1在str中不存在,返回0。 这个函数大小写不敏感。 示例: SELECT LOCATE('hel', 'hello world'); 运行结果:1 SELECT LOCATE('helx', 'hello world'); 运行结果:0 SELECT LOCATE('hel', 'hello world',1); 运行结果:1 SELECT LOCATE('hel', 'hello world',2); 运行结果:0 7、POSITION(str1 IN str2) 语法: position(str1 IN str2) 含义: 返回子串str1在字符串str2中的位置 示例: SELECT POSITION('abc' IN 'testabc124'); 运行结果:5 8、FIND_IN_SET(str,strlist)函数 语法: FIND_IN_SET(str,strlist) 含义: str是要查询的字符串; strlist是字段集合列,参数以”,”分隔,如 (1,2,3,4); 查询字段strlist中包含str的结果,返回结果为null或记录; Find_IN_SET是精确匹配,字段值以英文”,”分隔; 示例: SELECT FIND_IN_SET('1','1,2,3,4'); 运行结果:1 SELECT FIND_IN_SET('12','1,2,3,4'); 运行结果:0 9、INSTR(str1,str2) 语法: instr(str1,str2) 含义: 返回子串str2在字符串str1中的位置 示例: SELECT INSTR('testabc124','abc'); 运行结果:5 10、field(str,str1,str2,str3…) 语法: field(str,str1,str2,str3…) 含义: 与find_in_set类似,但str2由一个类似列表的字符串变成了多个字符串,返回str在str1,str2,str3…中的位置。 示例: SELECT FIELD('ab','hel','lo','ab','cd'); 运行结果:3 11、concat(str1,str2,str3…)合并字符串 语法: concat(str1,str2,str3…) 含义: 将多个字符串合并成一个字符串,如果传入的值中有null,那么最终结果是null; 如果想要在多个字符串合并结果中将每个字符串都分隔一下,可以使用concat_ws(分隔符,str1,str2,str3…),如果传入的分隔符为null,那么最终结果是null; 示例: SELECT CONCAT('hello',' ','world'); 运行结果:hello world SELECT CONCAT_WS(' ','hello','world'); 运行结果:hello world 12、strcmp(str1,str2)比较字符串大小 语法: strcmp(str1,str2) 含义: 比较两个字符串的大小。左边大于右边时返回1,左边等于右边时返回0,,左小于于右时返回-1。 示例: SELECT STRCMP('a','b'); 运行结果:-1 SELECT STRCMP('d','b'); 运行结果:1 SELECT STRCMP('b','b'); 运行结果:0 13、length(str)获取字符串字节数 语法: length(str) 含义: 获取字符串字节长度(返回字节数,要注意字符集) 示例: SELECT LENGTH('hello'); 运行结果:5 SELECT LENGTH('你好'); 运行结果:6 14、char_length(str)获取字符串字符数 语法: char_length(str) 含义: 获取字符串长度 示例: SELECT CHAR_LENGTH('hello'); 运行结果:5 SELECT CHAR_LENGTH('你好'); 运行结果:2 15、upper(x),ucase(x),lower(x),lcase(x) 字母转换大小写 语法: upper(x) ucase(x) lower(x) lcase(x) 含义: upper(x),ucase(x)用于将字母转成大写,x可以是单个字母也可以是字符串; lower(x),lcase(x)用于将字母转成小写,x可以是单个字母也可以是字符串; 示例: SELECT UPPER('hello'); SELECT UCASE('Hello'); 运行结果:HELLO SELECT LOWER('HELLO'); SELECT LCASE('Hello'); 运行结果:hello 16、elt(index,str1,str2,str3…) 语法: elt(index,str1,str2,str3…) 含义: 返回指定index位置的字符串 示例: SELECT ELT(2,'hel','lo','ab','cd'); 运行结果:2 17、left(str,n) 语法: left(str,n) 含义: 截取str左边n个字符 示例: SELECT LEFT('hello',2); 运行结果:he 18、right(str,n) 语法: right(str,n) 含义: 截取str右边n个字符 示例: SELECT RIGHT('hello',2); 运行结果:lo 19、ltrim(str),rtrim(str),trim()字符串去空 语法: 1)ltrim(str) 2)rtrim(str) 3)trim() 含义: 1)去除字符串str左边的空格 2)去除字符串str右边的空格 3)去除字符串str两边的空格 示例: SELECT LTRIM(' hello'); SELECT RTRIM('hello '); SELECT TRIM(' hello '); 运行结果:hello 运行结果:hello 运行结果:hello 二、聚合函数 1、avg(字段)函数 语法: avg(str) 含义: 返回指定字段的数据的平均值,avg() 函数忽略列值为NULL的行; 示例: SELECT AVG(age) FROM( select 10 as age UNION select 20 as age UNION select 30 as age ) t 运行结果:20.0000 2、count(字段)函数 语法: count(str) 含义: 返回指定字段的数据行数(记录的数量) 示例: SELECT count(*) FROM( select 10 as age UNION select 20 as age UNION select 30 as age ) t 运行结果:3 3、sum(字段)函数 语法: sum(str) 含义: 返回指定字段的数据之和,sum()函数忽略列值为null的行。 示例: SELECT sum(age) FROM( select 10 as age UNION select 20 as age UNION select 30 as age ) t 运行结果:60 4、max(字段)函数 语法: max(str) 含义: 返回指定字段的数据的最大值,max() 函数忽略列值为null的行,如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最大值。 示例: SELECT max(age) FROM( select 10 as age UNION select 20 as age UNION select 30 as age ) t 运行结果:30 5、min(字段)函数 语法: min(str) 含义: 返回指定字段的数据的最小值,min()函数忽略列值为null的行,如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最小值。 示例: SELECT min(age) FROM( select 10 as age UNION select 20 as age UNION select 30 as age ) t 运行结果:10 三、处理数值的函数 1、abs(x) 绝对值 语法: abs(x) 含义: 返回x的绝对值 示例: SELECT ABS(-10); 运行结果:10 2、ceil(x)向上取整 语法: ceil(x) 含义: 返回x的向上取整的整数 示例: SELECT CEIL(1.4); 运行结果:2 SELECT CEIL(-1.4); 运行结果:-1 3、floor(x)向下取整 语法: floor(x) 含义: 返回x的向下取整的整数 示例: SELECT FLOOR(1.4); 运行结果:1 SELECT FLOOR(-1.4); 运行结果:-2 4、mod(x)取模 语法: mod(x) 含义: 返回x mod y的结果 示例: SELECT mod(10,2); 运行结果:0 SELECT mod(9,2); 运行结果:1 5、rand()随机数 语法: rand() 含义: 返回0-1内的随机数 示例: SELECT RAND(); 运行结果:0.7218787462654326 6、round(x,y)四舍五入 语法: round(x,y) 含义: 返回数值x带有y为小数结果的数值(四舍五入) 示例: SELECT ROUND(2.155,2); 运行结果:2.16 SELECT ROUND(2.150,2); 运行结果:2.15 7、truncate(x,y)数值截取 语法: truncate(x,y) 含义: 返回数值x截取y位小数的结果(不四舍五入) 示例: SELECT TRUNCATE(2.155,2); 运行结果:2.15 SELECT TRUNCATE(2.150,2); 运行结果:2.15 四、处理时间日期的函数 1、curdate(),current_date() 语法: curdate() current_date() 含义: 返回当前日期 示例: SELECT CURDATE(); SELECT CURRENT_DATE(); 运行结果:2019-05-29 2、curtime(),current_time() 语法: curtime() current_time() 含义: 返回当前时间 示例: SELECT CURTIME(); SELECT CURRENT_TIME(); 运行结果:20:17:25 3、now() 语法: now() 含义: 返回当前日期时间 示例: SELECT NOW(); 运行结果:2019-05-29 20:18:46 4、month(date),monthname(date) 语法: month(date) monthname(date) 含义: 从日期中选择出月份数 示例: SELECT MONTH(CURDATE()); 运行结果:5 SELECT MONTHNAME(CURDATE()); 运行结果:May 5、week(date) 语法: week(date) 含义: 从日期中选择出周数 示例: SELECT WEEK(CURDATE()); 运行结果:21 6、year(date) 语法: year(date) 含义: 从日期中选择出年份 示例: SELECT YEAR(CURDATE()); 运行结果:2019 7、hour(date) 语法: hour(date) 含义: 从日期中选择出小时数 示例: SELECT HOUR(CURTIME()); 运行结果:20 8、minute(time) 语法: minute(time) 含义: 从日期中选择出分钟数 示例: SELECT MINUTE(CURTIME()); 运行结果:25 9、weekday(date),dayname(date) 语法: weekday(date) dayname(date) 含义: 从日期中选择出今天是周几 示例: SELECT WEEKDAY(CURDATE()); 运行结果:2 SELECT DAYNAME(CURDATE()); 运行结果:Wednesday
一、字符串处理函数1、REPLACE()字符串替换语法:REPLACE(str,old_str,new_str);含义:将str中的old_str替换为new_str字符串。注意:当搜索要替换的文本时,MySQL使用区分大小写匹配来执行要替换的字符串搜索。示例:将"hello world!"中hello字符串替换为hi。SELECT REPLACE('hello world!','hello','hi');运行结果:hi world!2、INSERT(STR1,INDEX,LEN,STR2)语法:insert(str1,index,len,str2)含义:用str2从str1的index位置替换str1的len个元素示例:SELECT INSERT('hello world',7,5,'tom');运行结果:hello tom3、SUBSTRING()从字符串中提取子字符串语法:SUBSTRING(string,position);SUBSTRING(string FROM position);SUBSTRING(string,position,length);SUBSTRING(string FROM position FOR length);含义:从特定位置开始的字符串返回一个给定长度的子字符串。包含几个参数:1>string参数是要提取子字符串的字符串。2>position参数是一个整数,用于指定子串的起始字符,position可以是正或负整数。如果position为正,则SUBSTRING函数从字符串的开始处提取子字符串。3>length是一个正整数,用于指定子字符串长度。示例:SELECT SUBSTRING('hello mysql', 6);运行结果:mysqlSELECT SUBSTRING('hello mysql' FROM 6);运行结果:mysqlSELECT SUBSTRING('hello world!',1,5);运行结果:helloSELECT SUBSTRING('hello world!' FROM 1 FOR 5);运行结果:helloSELECT SUBSTRING('hello world!' FROM -6 FOR 5);运行结果:world4、SUBSTRING_INDEX(str,"/",-1)语法:SUBSTRING_INDEX(str,delim,count);含义:在定界符delim及count出现前,从字符串str返回自字符串。若count为正值,则返回最终定界符(从左边开始) ,若为-1则是从后往前截取;示例:SELECT substring_index('hello/world!', '/', 1);运行结果:helloSELECT substring_index('hello/world!', '/', -1);运行结果:world!5、substr()函数语法:substr(string str,num start,num length);含义:返回从字符串str中指定位置start开始截取指定长度length的字符串,start从1开始;示例:SELECT substr('hello world!',1,5);运行结果:hello6、LOCATE(substr,str) 字符串匹配语法:1)LOCATE(str1,str)2)LOCATE(str1,str,pos)含义:1)函数返回字符串str1在str中第一次出现的位置。如果str1在str中不存在,返回0。2)函数返回字符串str1在str中的第pos位置后第一次出现的位置。如果str1在str中不存在,返回0。这个函数大小写不敏感。示例:SELECT LOCATE('hel', 'hello world');运行结果:1SELECT LOCATE('helx', 'hello world');运行结果:0SELECT LOCATE('hel', 'hello world',1);运行结果:1SELECT LOCATE('hel', 'hello world',2);运行结果:07、POSITION(str1 IN str2)语法:position(str1 IN str2)含义:返回子串str1在字符串str2中的位置示例:SELECT POSITION('abc' IN 'testabc124');运行结果:58、FIND_IN_SET(str,strlist)函数语法:FIND_IN_SET(str,strlist)含义:str是要查询的字符串;strlist是字段集合列,参数以”,”分隔,如 (1,2,3,4);查询字段strlist中包含str的结果,返回结果为null或记录;Find_IN_SET是精确匹配,字段值以英文”,”分隔;示例:SELECT FIND_IN_SET('1','1,2,3,4');运行结果:1SELECT FIND_IN_SET('12','1,2,3,4');运行结果:09、INSTR(str1,str2)语法:instr(str1,str2)含义:返回子串str2在字符串str1中的位置示例:SELECT INSTR('testabc124','abc');运行结果:510、field(str,str1,str2,str3…)语法:field(str,str1,str2,str3…)含义:与find_in_set类似,但str2由一个类似列表的字符串变成了多个字符串,返回str在str1,str2,str3…中的位置。示例:SELECT FIELD('ab','hel','lo','ab','cd');运行结果:311、concat(str1,str2,str3…)合并字符串语法:concat(str1,str2,str3…)含义:将多个字符串合并成一个字符串,如果传入的值中有null,那么最终结果是null;如果想要在多个字符串合并结果中将每个字符串都分隔一下,可以使用concat_ws(分隔符,str1,str2,str3…),如果传入的分隔符为null,那么最终结果是null;示例:SELECT CONCAT('hello',' ','world');运行结果:hello worldSELECT CONCAT_WS(' ','hello','world');运行结果:hello world12、strcmp(str1,str2)比较字符串大小语法:strcmp(str1,str2)含义:比较两个字符串的大小。左边大于右边时返回1,左边等于右边时返回0,,左小于于右时返回-1。示例:SELECT STRCMP('a','b');运行结果:-1SELECT STRCMP('d','b');运行结果:1SELECT STRCMP('b','b');运行结果:013、length(str)获取字符串字节数语法:length(str)含义:获取字符串字节长度(返回字节数,要注意字符集)示例:SELECT LENGTH('hello');运行结果:5SELECT LENGTH('你好');运行结果:614、char_length(str)获取字符串字符数语法:char_length(str)含义:获取字符串长度示例:SELECT CHAR_LENGTH('hello');运行结果:5SELECT CHAR_LENGTH('你好');运行结果:215、upper(x),ucase(x),lower(x),lcase(x)字母转换大小写语法:upper(x)ucase(x)lower(x)lcase(x)含义:upper(x),ucase(x)用于将字母转成大写,x可以是单个字母也可以是字符串;lower(x),lcase(x)用于将字母转成小写,x可以是单个字母也可以是字符串;示例:SELECT UPPER('hello');SELECT UCASE('Hello');运行结果:HELLOSELECT LOWER('HELLO');SELECT LCASE('Hello');运行结果:hello16、elt(index,str1,str2,str3…)语法:elt(index,str1,str2,str3…)含义:返回指定index位置的字符串示例:SELECT ELT(2,'hel','lo','ab','cd');运行结果:217、left(str,n)语法:left(str,n)含义:截取str左边n个字符示例:SELECT LEFT('hello',2);运行结果:he18、right(str,n)语法:right(str,n)含义:截取str右边n个字符示例:SELECT RIGHT('hello',2);运行结果:lo19、ltrim(str),rtrim(str),trim()字符串去空语法:1)ltrim(str)2)rtrim(str)3)trim()含义:1)去除字符串str左边的空格2)去除字符串str右边的空格3)去除字符串str两边的空格示例:SELECT LTRIM(' hello');SELECT RTRIM('hello ');SELECT TRIM(' hello ');运行结果:hello运行结果:hello运行结果:hello二、聚合函数1、avg(字段)函数语法:avg(str)含义:返回指定字段的数据的平均值,avg() 函数忽略列值为NULL的行;示例:SELECT AVG(age)FROM(select 10 as ageUNIONselect 20 as ageUNIONselect 30 as age) t运行结果:20.00002、count(字段)函数语法:count(str)含义:返回指定字段的数据行数(记录的数量)示例:SELECT count(*)FROM(select 10 as ageUNIONselect 20 as ageUNIONselect 30 as age) t运行结果:33、sum(字段)函数语法:sum(str)含义:返回指定字段的数据之和,sum()函数忽略列值为null的行。示例:SELECT sum(age)FROM(select 10 as ageUNIONselect 20 as ageUNIONselect 30 as age) t运行结果:604、max(字段)函数语法:max(str)含义:返回指定字段的数据的最大值,max() 函数忽略列值为null的行,如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最大值。示例:SELECT max(age)FROM(select 10 as ageUNIONselect 20 as ageUNIONselect 30 as age) t运行结果:305、min(字段)函数语法:min(str)含义:返回指定字段的数据的最小值,min()函数忽略列值为null的行,如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最小值。示例:SELECT min(age)FROM(select 10 as ageUNIONselect 20 as ageUNIONselect 30 as age) t运行结果:10三、处理数值的函数1、abs(x)绝对值语法:abs(x)含义:返回x的绝对值示例:SELECT ABS(-10);运行结果:102、ceil(x)向上取整语法:ceil(x)含义:返回x的向上取整的整数示例:SELECT CEIL(1.4);运行结果:2SELECT CEIL(-1.4);运行结果:-13、floor(x)向下取整语法:floor(x)含义:返回x的向下取整的整数示例:SELECT FLOOR(1.4);运行结果:1SELECT FLOOR(-1.4);运行结果:-24、mod(x)取模语法:mod(x)含义:返回x mod y的结果示例:SELECT mod(10,2);运行结果:0SELECT mod(9,2);运行结果:15、rand()随机数语法:rand()含义:返回0-1内的随机数示例:SELECT RAND();运行结果:0.72187874626543266、round(x,y)四舍五入语法:round(x,y)含义:返回数值x带有y为小数结果的数值(四舍五入)示例:SELECT ROUND(2.155,2);运行结果:2.16SELECT ROUND(2.150,2);运行结果:2.157、truncate(x,y)数值截取语法:truncate(x,y)含义:返回数值x截取y位小数的结果(不四舍五入)示例:SELECT TRUNCATE(2.155,2);运行结果:2.15SELECT TRUNCATE(2.150,2);运行结果:2.15四、处理时间日期的函数1、curdate(),current_date()语法:curdate()current_date()含义:返回当前日期示例:SELECT CURDATE();SELECT CURRENT_DATE();运行结果:2019-05-292、curtime(),current_time()语法:curtime()current_time()含义:返回当前时间示例:SELECT CURTIME();SELECT CURRENT_TIME();运行结果:20:17:253、now()语法:now()含义:返回当前日期时间示例:SELECT NOW();运行结果:2019-05-29 20:18:464、month(date),monthname(date)语法:month(date)monthname(date)含义:从日期中选择出月份数示例:SELECT MONTH(CURDATE());运行结果:5SELECT MONTHNAME(CURDATE());运行结果:May5、week(date)语法:week(date)含义:从日期中选择出周数示例:SELECT WEEK(CURDATE());运行结果:216、year(date)语法:year(date)含义:从日期中选择出年份示例:SELECT YEAR(CURDATE());运行结果:20197、hour(date)语法:hour(date)含义:从日期中选择出小时数示例:SELECT HOUR(CURTIME());运行结果:208、minute(time)语法:minute(time)含义:从日期中选择出分钟数示例:SELECT MINUTE(CURTIME());运行结果:259、weekday(date),dayname(date)语法:weekday(date)dayname(date)含义:从日期中选择出今天是周几示例:SELECT WEEKDAY(CURDATE());运行结果:2SELECT DAYNAME(CURDATE());运行结果:Wednesday-----------------------------------mysql 字段前两位替换成其他字符 mysql字符替换函数https://blog.51cto.com/u_16099225/6903239 标签:字符,示例,替换成,运行,str,mysql,字符串,hello,SELECT From: https://www.cnblogs.com/zxy-come-on/p/17704113.html