Mysql的常用函数操作一
一、数字函数
ABS(x):返回 x 的绝对值
-> select abs(-1) -- 返回1
ACOS(x):求 x 的反余弦值(参数是弧度)
-> select acos(0.25) -- 返回1.318116071652818
ASIN(x) 求反正弦值(参数是弧度)
-> select asin(0.25) -- 返回0.25268025514207865
ATAN(x) 求反正切值(参数是弧度)
-> select atan(0.25) -- 返回0.24497866312686414
AVG(expression) 求平均数
-> SELECT AVG(Price) AS AveragePrice FROM Products;
CEILING(X)/CEIL(X)返回>=X的最小整数
-> select ceiling(2.3); 返回3
-> select ceil(1.3); 返回2
FLOOR(X) 返回<=X值的最大整数。
-> select floor(1.2); 返回1
-> select floor(-3.2);返回-4
RAND([N]):获取0到1之间的随机小数,比如当想获取7~12之间的随机整数是可以使用。一般用于生成测试数据
-> SELECT FLOOR(7 + (RAND() * 5));
-> select floor(10+(rand()*10));##取10-20的随机整数
ROUND(X), ROUND(X,D): 四舍五入为D位个小数,当D参数不存在是,则默认为0。D 可以为负数,从而导致D该值的小数点左边的数字,X变为零。
-> select round(5.6);返回6;
-> select round(5.4);返回5;
-> select round(5.4,2);返回5.40;
TRUNCATE(X,D) 数字X只保留D位的小数,其余均舍弃。D可以为负数,从而导致D该值的小数点左边的数字X变为零。
->select truncate(5.454,1); 返回5.4
->select truncate(5.454,2);返回5.45
二、字符串函数:
ASCII(s):返回字符串str的第一个字符的ascii值(str是空串时返回0)
-> select ascii('s');
-> 115
bin(n)
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))
-> select bin(12);
-> 1100
concat(str1,str2,...)
把参数连成一个长字符串并返回(任何参数是null时返回null)
-> select concat('my','sql');
-> mysql
length(str)
返回字符串str的长度(对于多字节字符char_length仅计算一次)
-> select length('python');
-> 6
locate(substr,str)
position(substr in str)
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)
-> select locate('tt','fsattfsdfs');
-> 4
-> select position('tt' in 'fsattfsdfs');
-> 4
locate(substr,str,pos)
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)
-> select locate('tt','ffttsfsfttfss',5);
-> 9
lpad(str,len,padstr)
用字符串padstr填补str左端直到字串长度为len并返回
-> select lpad(123,5,'??');
-> ??123
rpad(str,len,padstr)
用字符串padstr填补str右端直到字串长度为len并返回
-> select rpad(123,5,'??');
-> 123??
left(str,len)
返回字符串str的左端len个字符
-> select left('testfsdjdsfs',4);
-> test
right(str,len)
返回字符串str的右端len个字符
-> select right('foobarbar', 4);
-> 'rbar'
substring(str,pos,len)
substring(str from pos for len)
mid(str,pos,len)
返回字符串str的位置pos起len个字符
->select substring('dsttest',1,3);
-> dst
-> select substring('fdsdsfsdf' from 3 for 2);
-> sd
-> select mid('fdsfsdfsd',3,5);
-> sfsdf
substring(str,pos)
substring(str from pos)
返回字符串str的位置pos起的一个子串
-> select substring('fsdttest',4);
-> ttest
-> select substring('fsdttest' from 2);
-> sdttest
ltrim(str)
返回删除了左空格的字符串str
rtrim(str)
返回删除了右空格的字符串str
-> select ltrim(' test');
-> test
-> select rtrim('test ');
-> test
trim([[both | leading | trailing] [remstr] from] str)
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)
-> select trim(' bar ');
-> bar
space(n)
返回由n个空格字符组成的一个字符串
-> select space(7)
-> ' '
replace(str,from_str,to_str)
用字符串to_str替换字符串str中的子串from_str并返回
->select replace('www.baidu.com','baidu','fing');
-> www.fing.com
repeat(str,count)
返回由count个字符串str连成的一个字符串(任何参数为null时
返回null,count<=0时返回一个空字符串)
-> select repeat('test',4);
->testtesttesttest
reverse(str)
颠倒字符串str的字符顺序并返回
-> select reverse('python');
-> nohtyp
insert(str,pos,len,newstr)
把字符串str由位置pos起len个字符长的子串替换为字符串newstr并返回
-> select insert('www.baidu.com',5,2,'fing');
-> www.fingidu.com
lcase(str)
lower(str)
返回小写的字符串str
-> select lcase('WWWW');
-> wwww
ucase(str)
upper(str)
返回大写的字符串str
-> select ucase('wwww');
-> 'WWWW'