MySQL函数
数字函数
select ceil(sal/12) from emp;
select floor(sal/12) from emp;
- POW(x,y)/POWER(x,y) 返回 x 的 y 次方
select power(age,2) from test;
select age,RAND() from test;
select round(rand(),2);
字符串函数
- LENGTH/CHAR_LENGTH(s)/CHARACTER_LENGTH(s)返回字符串 s 的字符数
select length(ename) from emp;
- CONCAT(s1,s2…sn)字符串 s1,s2 等多个字符串合并为一个字符串
select concat(age,'-',`name`,"-") from first_table;
- CONCAT_WS(separator, str1, str2, …)指定分隔符的拼接
select concat_ws(',',age,name) from first_table;
- SUBSTR/SUBSTRING(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串
select *,substr(clazz,3,1) from students;
- STRCMP(s1,s2)比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1
select *,strcmp(clazz,'理科六班\r') from students where clazz like '理科六%';
日期函数
- CURDATE()/CURRENT_DATE()返回当前日期
- CURRENT_TIME()/CURTIME()返回当前时间
- CURRENT_TIMESTAMP()返回当前日期和时间
- DATEDIFF(d1,d2)计算日期 d1->d2 之间相隔的天数
- TIMEDIFF(time1, time2)计算时间差值
- UNIX_TIMESTAMP()得到时间戳
- FROM_UNIXTIME()时间戳转日期
- DATE_ADD(d,INTERVAL expr type)从日期增加指定的时间间隔。
- DATE_SUB(date,INTERVAL expr type)函数从日期减去指定的时间间隔。
- DATE_FORMAT(d,f)表达式 f的要求显示日期 d
- STR_TO_DATE(string, format_mask)将字符串转变为日期
高级函数
- IF(expr,v1,v2)如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2
select *,
if(age>=23
,if(age=23
,'二师兄'
,'大师兄')
,if(age=22
,'三师弟'
,'小师弟')
) as zhic
from students;
select
*
,if(age>0
,if(age>18
,if(age>35
,if(age>60
,if(age>200
,'成仙'
,'老登')
,"壮年")
,"青年")
,"未成年")
,'错误')
from students;
- IFNULL(v1,v2) 如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。
select *,ifnull(age,18) from first_table;
- **CASE (WHEN THEN) + ELSE END **
select *,case
when age=21 then '小师弟'
when age=22 then '三师弟'
when age=23 then '二师兄'
when age=24 then '大师兄'
else "妖怪"
end as rank
from students;
select *,concat(cast(age as char),'hh') from students;