四、mysql内置函数

1.字符串函数
concat('a','b'); 字符串拼接函数
insert("abcd",1,2,"我是A我是B"); 从指定位置开始替换指定长度的指定数据(起步为1)
lower() 转小写
upper() 转大写
left("abcd",2) 返回ab
right("abcd",2) 返回cd
lpad("1",10,"0") 返回00000000001
rpad("1",10,"0") 返回10000000000  同上一个都属于字符串填充函数
ltrim() 删除左边的空格
rtrim() 删除右边的空格
trim() 删除所有的空格
repeat("100",2) 返回100100 ,意思就重复之前的数据多少次
replace("abcd","ab","AB");  将ab替换成AB
strcmp(1,1) 比较两个值,相同返回0,不等返回-1
substring("abcd",1,2) 返回ab ,(起步为1),相当于php中的substr

2.数值函数
abs(10),abs(-10) 返回绝对值,那就是10
ceil(10.1) 返回11
floor(10.1) 返回10 ,跟上面比较一下就知道是什么作用了
mod(10,3) 返回1 取模 相当于 10%3
rand() 0 - 1之间的随机数(基本是小数)
ceil( rand() * 10 ) 返回1个1-10之间的随机整数

round(100.52485) 返回 101
round(100.42485) 返回 100
round(100.52485,3) 返回 100.525

truncate(100.52485) 返回100
truncate(100.52485,3) 返回100.524  基本相当于一个按位截取

3.时间函数
curtime() 当前时间
curdate() 当前日期
now() 当前日期加当前时间
unix_timestamp() 返回指定值的时间戳,不指定的话,就返回当前
from_unixtime() 把时间戳格式化成日期时间
week('2014-07-06') 返回这是这年的那一个礼拜
year('2014-07-06') 返回2014
hour('2014-07-06 12:13:14') 返回 12
minute('2014-07-06 12:13:14') 返回 13
monthname('2014-07-06') 返回july 返回的是这个日期的月份的英文名称
date_format('2014-07-06','%T') 通过mysql的内置时间格式符格式时间
datediff('2014-08-08','2014-09-09') 两个时间之间差了多少天
date_add(now(),INTERVAL 31 DAY) 在当前时间上加上31天  (DAY这个类型是可选的,具体可参见mysql日期间隔类型)

4.流程函数
if(1=1,'A','B') 返回A
if(1=2,'A','B') 返回B
ifnull(NULL,'B') 返回B
ifnull('A','B') 返回A
case when 1=1 then 'A' else 'B' end 返回A
case when 1=2 then 'A' else 'B' end 返回B

case的switch:
case when 1=1 then 'A' when 2=2 then 'B' when 3=3 then 'C' ... end;

5.其他函数
inet_aton('127.0.0.1'); 返回1个ip地址的数字表现形式
inet_ntoa(inet_aton('127.0.0.1')) 返回1个数字的ip表现形式
md5(xxxxx)
password(xxxx)  mysql自带的字符串加密功能
原文地址:https://www.cnblogs.com/shibazi/p/3828585.html