MySQL提供了很多函数帮助编写快捷的SQL语句
函数可以用在select语句以及其子句(如,where、order by、having),也可以用在update、delete
字符串函数
- concat(S1,S2,...Sn) 把S1,S2,...Sn连接成一个字符串
- insert(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的字符串 替换成instr
- LOWER(str) 将字符串str中所有字符变为小写
- UPPER(str) 将字符串str中所有字符变为大写
- LEFT(str,x) 返 回字符串str最右边的x个字符
- RIGHT(str,x) 返回字符串str最右边的x个字符
- LPAD(str,n,pad) 用字符串pad对str最左边进行填充,直到长度为n个字符长度
- RPAD(str,n,pad) 用字符串pad对str最右边进行填充,直到长度为n个字符长度
- LTRIM(str) 去掉字符串str左侧的空格
- RTRIM(str) 去掉字符串str行尾的空格
- REPEAT(str,x) 返回str重复x次的结果
- REPLACE(str,a,b) 用字符串b替换字符串str中所有出现的字符串a
- STRCMP(s1,s2) 比较字符串s1和s2
- TRIM(str) 去掉字符串行尾和行头的空格
- SUBSTRING(str,x,y) 返回从字符串str x位置起y个字符长度的字符串
- LENGTH(str) 返回字符串长度
日期和时间函数
- ABS(x) 返回x的绝对值
- CEIL(x) 返回大于x的最小整数值
- FLOOR(x) 返回小于x的最大整数值
- MOD(x,y) 返回x/y的模
- RAND() 返回0-1内的随机值
- ROUND(x,y) 返回参数x的四舍五入的有y位小数的值
- TRUNCATE(x,y) 返回数字x截断为y位小数的结果
数值函数
- CURDATE() 返回当前日期
- CURTIME() 返回当前时间
- NOW() 返回当前的日期和时间
- UNIX_TIMESTAMP(date) 返回日期date的UNIX时间戳
- FROM_UNIXTIME() 返回UNIX时间戳的日期值
- WEEK(date) 返回日期date为一年中的第几周
- YEAR(date) 返回日期date的年份
- HOUR(time) 返回time的小时值
- MINUTE(time) 返回time的分钟值
- MONTHNAME(date) 返回date的月份名
- DATE_FORMAT(date,fmt) 返回按字符串fmt格式化日期date值
- DATE_ADD(add,INTERVAL expr type) 返回一个日期或时间值加上一个时间间隔的时间值
- DATEDIFF(expr,expr2) 返回起始时间expr和结束时间expr2之间的天数
流程函数
- if(value,t,f) 如果value是真,返回t,否则返回f
select if( field1>1000,'高薪','低薪');
- ifnull(value1,value2) 如果value1不是null 返回value1,否则返回value1
select ifnull(name,'无名');
- case when [value1] then [result1] ...else[default] end 如果value1是真那么返回result1,否则返回default
(和 if 语句比较像)
- case [expr] when [value1] then[result1]...else[default] end 如果expr等于value1,返回result1,否则返回default
(和switch语句比较像)
其他常用的函数
- DATABASE() 返回当前数据库名
- VERSION() 返回当前数据库版本
- USER() 返回当前登录用户名
- INET_ATON(IP) 返回IP地址的数字表示
- INET_NTOA(num) 返回数字代表的IP地址
- PASSWORD(str) 返回字符串str的加密版本(加密)
- MD5() 返回字符串str的MD5值(加密)