Mysql-常用函数

开发过程中常用的Mysql函数:

  函数 作用 示例 返回值

RAND() 返回0->1的随机数 SELECT RAND() 0.93099315644334
RAND() 返回0->X的随机数 SELECT RAND(2) 1.5865798029924
SQRT(x) 返回x的平方根 SELECT SQRT(25) 5
MOD(x,y) 返回x除以y以后的余数 SELECT MOD(5,2) 1
RADIANS(x) 将角度转换为弧度 SELECT RADIANS(180) 3.1415926535898
DEGREES(x) 将弧度转换为角度 SELECT DEGREES(3.1415926535898) 180
SIN(x) 求正弦值(参数是弧度) SELECT SIN(RADIANS(30)) 0.5
ASIN(x) 求反正弦值(参数是弧度)    
COS(x) 求余弦值(参数是弧度)    
ACOS(x) 求反余弦值(参数是弧度)    
TAN(x) 求正切值(参数是弧度)    
ATAN(x) ATAN2(x) 求反正切值(参数是弧度)    
COT(x) 求余切值(参数是弧度)    

CONCAT(s1,s2,...) 将字符串s1,s2等多个字符串合并为一个字符串 SELECT CONCAT('12','34') 1234
CONCAT_WS(x,s1,s2,...) 同CONCAT(s1,s2,...)函数,但是每个字符串直接要加上x SELECT CONCAT_WS('@','12','34') 12@34
UPPER(s),UCAASE(s)

将字符串s的所有字母变成大写字母

SELECT UPPER('abc')  ABC
LOWER(s),LCASE(s) 将字符串s的所有字母变成小写字母 SELECT LOWER('ABC') abc
LEFT(s,n) 返回字符串s的前n个字符 SELECT LEFT('abcde',2) ab
RIGHT(s,n) 返回字符串s的后n个字符 SELECT RIGHT('abcde',2) de
LTRIM(s) 去掉字符串s开始处的空格    
RTRIM(s) 去掉字符串s结尾处的空格    
TRIM(s) 去掉字符串s开始和结尾处的空格    
TRIM(s1 FROM s) 去掉字符串s中开始处和结尾处的字符串s1 SELECT TRIM('@' FROM '@@abc@@') abc
REPEAT(s,n) 将字符串s重复n次 SELECT REPEAT('ab',3) ababab
REPLACE(s,s1,s2) 将字符串s2替代字符串s中的字符串s1 SELECT REPLACE('abc','a','x')

xbc

SUBSTRING(s,n,len) 获取从字符串s中的第n个位置开始长度为len的字符串    
REVERSE(s) 将字符串s的顺序反过来 SELECT REVERSE('abc') cba
SUBSTRING_INDEX

返回从字符串str的第count个出现的分隔符delim之后的子串。

如果count是正数,返回第count个字符左边的字符串。

如果count是负数,返回第(count的绝对值(从右边数))个字符右边的字符串。

 SELECT SUBSTRING_INDEX('a*b','*',1) 

SELECT SUBSTRING_INDEX('a*b','*',-1) 

a

b

 CURDATE(),CURRENT_DATE()  返回当前日期  SELECT CURDATE()  2014-12-17
 CURTIME(),CURRENT_TIME  返回当前时间  SELECT CURTIME()  15:59:02
 

NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),

SYSDATE(),LOCALTIMESTAMP()

 返回当前日期和时间  SELECT NOW()  2014-12-17 15:59:02
 DATE_FORMAT(d,f)  按表达式f的要求显示日期d  SELECT DATE_FORMAT('2011-11-11 11:11:11','%Y-%m-%d %r')  2011-11-11 11:11:11 AM

IF(expr,v1,v2)  如果表达式expr成立,返回结果v1;否则,返回结果v2  SELECT IF(1 > 0,'正确','错误')  正确
IFNULL(v1,v2) 如果v1的值不为NULL,则返回v1,否则返回v2 SELECT IFNULL(null,'Hello Word') Hello Word

CASE  
  WHEN e1   THEN v1
  WHEN e2   THEN e2
  ...
  ELSE vn
END

CASE表示函数开始,END表示函数结束。如果e1成立,则返回v1,如果e2成立,则返回v2,当全部不成立则返回vn,而当有一个成立之后,后面的就不执行了。    
CASE  expr
  WHEN e1   THEN v1
  WHEN e2   THEN e2
  ...
  ELSE vn
END
如果表达式expr的值等于e1,返回v1;如果等于e2,则返回e2。否则返回vn    
转换数据类型

CAST(x AS type)

CONVERT(x,type)

只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER    
posted @ 2022-01-10 10:57  静沐丶暖阳  阅读(44)  评论(0编辑  收藏  举报