mysql 字段前两位替换成其他字符 mysql字符替换函数

一、字符串处理函数
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
posted @ 2023-09-15 09:29  星空物语之韵  阅读(248)  评论(0编辑  收藏  举报