1.字符串函数
mysql中内置了很多字符串函数,常用的几种如下:
concat(s1,s2,s3...) | 字符串拼接,将s1,s2,s3...拼接成一个字符串 |
lower(s1) | 将字符串s1全部转为小写 |
upper(s1) | 将字符串s1全部转为大写 |
lpad(s1,5,*) | 如果字符串s1不足5位,则在其左边用*填充到5位 (可以用任意符合填充字符串) |
rpad(s1,5,*) | 如果字符串s1不足5位,则在其右边用*填充到5位 (可以用任意符合填充字符串) |
trim(s1) | 去掉字符串s1头部与尾部的空格(不会去除字符串中间的空格,哪怕字符串中间有多个空格) |
substring(s1,1,5) | 截取字符串s1从第一个字符起的5个字符 |
使用函数时,在前面加上select,可以返回结果;也可以配合update、insert等直接修改表的数据
2.数值函数
ceil(x) | 向上取整 |
floor(x) | 向下取整 |
mod(x,y) | 返回x/y的模 |
rand() | 返回0到1直接的随机数 |
round(x,y) | 求x四舍五入的值,保留y位小数 |
求模可以理解为求余数,例如11 mod 2=1。如果A<B,A mod B=A
3.日期函数
curdate() | 返回当前日期 |
curtime() | 返回当前时间 |
now() | 返回当前日期和时间 |
year(date) | 获取指定date的年份 |
month(date) | 获取指定date的月份 |
day(date) | 获取指定date的日期 |
day_add(date,INTERVAL n type) | 返回date加上时间间隔n后的时间值。type是n的单位(年,月,日) (INTERVAL是固定的) |
datediff(date1,date2) | 返date1与date2相隔的天数 |
4.流程函数
if(value,t,f) | 如果value值为true,则返回t,否则返回f (这里的t与f可以是任意值) |
ifnull(value1,value2) | 如果value1不为null,则返回value1,否则返回value2 (空字符串不算是null) |
case when value1 then res1 when value2 then res2......else del1 end | 如果value1为true,返回res1。如果value2为true,返回res2。 ...... 如果之前的value值都不为true,则返回del1 |
case n when value1 then res1 when value2 then res2......else del1 end | 如果n的值为value1,返回res1。如果n的值为value2,返回res2。 ...... 如果之前的value值都不为true,则返回del1 |