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 |
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 |