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 |

浙公网安备 33010602011771号