MySQL常用函数
数学函数:
abs(X):返回X的绝对值
mod(N,M)或%:返回N被M除的余数
floor(X):返回不大于X的最大整数值
ceiling(X):返回不小于X的最小整数值
round(X) :对参数X四舍五入
字符串函数:下标从1开始
ascii(str):返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL
concat(str1,str2,...):返回来自于参数连结的字符串。如果任何参数是NULL,返回NULL。数字参数被变换为等价的字符串形式
concat_ws(separator,str1,str2...)以字符串separator为分隔符,合并多个字符串
length(str):返回字符串str的长度
locate(substr,str):返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0
instr(str,substr):返回子串substr在字符串str中的第一个出现的位置,与locate类似
left(str,len):返回字符串str的最左面len个字符
right(str,len):返回字符串str的最右面len个字符
substring(str,pos):从字符串str的第pos个字符开始,返回一个子串
trim(str):返回字符串str,去除前后空格
ltrim(str):返回字符串str,去除前置空格
RTRIM(str):返回字符串str,去除后置空格
replace(str,old,new):返回字符串str,其字符串old的所有出现由字符串new代替
repeat(str,count):返回由重复countTimes次的字符串str组成的一个字符串。如果count <= 0,返回一个空字符串。如果str或count是NULL,返回NULL
reverse(str):颠倒字符顺序
insert(str,from,len,newstr):返回字符串str,从第from个字符开始的len个字符由字符串newstr代替
日期和时间函数:
dayofweek(date):返回日期date的星期索引(1-7)
weekday(date):返回date的星期索引(0-6)
dayofmonth(date):返回date的月份中的日期(1-31)
dayofyear(date):返回date在一年中的日数(1-366)
month(date):返回date的月份(1-12)
dayname(date):返回date的星期几的英文(Monday-Sunday)
monthname(date) :返回date的月份英文(January-December)
quarter(date):返回date一年中的季度(1-4)
week(date,first):返回date的周数(0-52),只有一个参数则默认第二个参数为0,0代表星期天是一周的第一天,1代表周一是一周的第一天
year(date):返回date的年份(1000-9999)
hour(time):返回time的小时(0-23)
minute(time):返回time的分钟(0-59)
second(time):回来time的秒数(0-59)
date_add(date,INTERVAL expr type) ,进行日期增加的操作,可以精确到秒(INTERVAL 、 type为关键词,expr为数字)
date_sub(date,INTERVAL expr type) ,进行日期减少的操作,可以精确到秒
curdate():以‘YYYY-MM-DD’或YYYYMMDD格式返回今天日期值,取决于函数在一个字符串还是数字上下文被使用
curtime():以‘HH:MM:SS’或HHMMSS格式返回当前时间值
now():以‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回当前的日期和时间
控制流程函数 :
case value when value1 then result1 (when value2 then result2...) else result end
已end结尾,如果没有ELSE 部分且when后条件都不成立,则返回值为 NULL
if(expr1,expr2,expr3)
如果 expr1 是true (expr1 不为 0 且 不为 NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3
Strcmp(str1,str2)
如果str1>str2返回1,str1=str2反回0,str1<str2返回-1)
如果字符串相同,strcmp()返回0,如果第一参数根据当前的排序次序小于第二个,返回-1,否则返回1
系统信息函数:
version()函数返回数据库的版本号
connection_id()函数返回服务器的连接数,也就是到现在为止MySQL服务的连接次数
database()和schema()返回当前数据库名
user()、system_user()、session_user()、current_user()这几个函数可以返回当前用户的名称
charset(str)函数返回字符串str的字符集,一般情况这个字符集就是系统的默认字符集
collation(str)函数返回字符串str的字符排列方式
last_insert_id()函数返回最后生成的AUTO_INCREMENT(自增长id)值
加密函数:
password(str)函数可以对字符串str进行加密,一般用来加密用户密码
MD5(str)函数可以对字符串str进行加密,主要对普通的数据进行加密
encode(str,pswd_str)函数可以使用字符串pswd_str来加密字符串str。加密的结果是一个二进制数,必须使用Blog类型的字段来保存它
decode(crypt_str,pswd_str)函数可以使用字符串pswd_str来为crypt_str解密。crypt_str是通过encode(str,pswd_str)加密后的二进制数据,
其它函数:
format(x,n)函数可以将数字x进行格式化,将x保留到小数点后n位,(必要的时候会进行四舍五入)
ascii(s)返回字符串s的第一个字符的ASCII码
bin(x)返回x的二进制编码
hex(x)返回x的十六进制编码
oct(x)返回x的八进制编码
conv(x,f1,f2)将x从f1进制数变成f2进制数
inet_aton(IP)函数可以将IP地址转换为数字表示,IP值需要加上引号
inet_ntoa(n)函数可以将数字n转换成IP的形式
benchmark(count,expr)函数将表达式expr重复执行count次,然后返回执行时间。该函数可以用来判断MySQL处理表达式的速度
convert(s USING cs)、cast(x AS type)函数将字符串s的字符集变成cs
to_days(expr)将日期XXXX-XX-XX/XX-XX-XX转化为天数