Mysql函数大全

一、 控制流程函数

if(value,t,f)
ifnull(value1,value2) value1不为空,返回value1,否则返回value2
case when[value1] then [result1] when [value2]... then [result2] else [default] end
case [expr] when [value1] then [result1] else[default] end

 

二、 字符串比较函数


concat(s1,s2)
insert(str,x,y,instr) str的x位置开始,y个长度,替换为instr
lower(str)
upper(str)
left(str,x) 返回str左面的x个字符
right(str,x)
lpad(str,n,pad)用pad对str左边进行填充,直到长度为n个字符
rpad(str,n,pad)
ltrim(str)
rtrim(str)
trim(str)
repeat(str,x)  返回x边str
replace(str,a,b) str中的a字符串被b字符串替换
strcmp(s1,s2) 比较s1,s2字符串,ASCII码比较
substring(str,x,y) 取子字符串,x开始,y个长度

locate(search,str):返回search在str的位置

三、 数学函数

数值:
abs(x)
ceil(x)
floor(x)小于x的最大整数
mod(x,y)
rand() 0-1内的随机小数  1-100的随机数:ceil(100*rand())
round(x,y) x的四舍五入y位小数 rand(x,0)=x四舍五入取整
truncate(x,y) x截断为y位小数的结果

format('123.45',1) => 123.4

四、 日期和时间函数


curdate()
curtime()
now()
unix_timestamp(date)  date的unix时间戳 返回数字秒,从1970开始
form_unixtime(34343)  时间戳转日期值
week(date) 一年只的第几周
year(date)
hour(time) time的小时数
minute(time)
monthname(date)
date_format(date,fmt)  字符串fmt格式化的日期值
date_add(date,interval expr type)  date加上间隔后的时间:interval不能少
datediff(expr,expr2) expr2-expr1的天数
timediff(time1,time) 精确到秒 返回的是时间格式,配合hour进行小时提取


dayofweek(date):1=星期天;2=星期一。返回数字
weekday(date):0=星期一;1=星期二;返回数字
dayofmonth(date): 返回1-31
dayofyear(date):返回1-366
month(date):返回1-12
dayname(date):Thursday .返回英文星期几
quarter(date):返回1-4季度。(1-3月为第一季度)
week(date):返回数字,本年的第几周
week(date,0):同上,开始于星期天(小)
weed(date,1):开始于星期一(大)
year(date):返回数字年份
hour(time):返回数字 0-23
minute:返回0-59
second(time):返回0-59
period_add(p,n):增加n个月到阶段p(YYMM或YYYYMM),p不是日期值,以格式YYYYMM返回。period_add(9801,2) => 199803
period_diff(p1,p2):period_diff(9802,199703) => 11 . 返回间隔月数

date_add(date,interval expr type):adddate(date,interval expr type)
date_sub(date,interval expr type):subdate(date,interval expr type) date_add的反义词
expr: 字符串表达式,可以 - 开头表负
type:关键字,指明表达式应该如何解释
extract(type from date)从日期中返回'type'间隔。有时不是期望格式。extract(day from now()) => 22
SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03"); => 199907 


 type值 含义 期望的expr格式
SECOND 秒 SECONDS 
  MINUTE 分钟 MINUTES 
  HOUR 时间 HOURS 
  DAY 天 DAYS 
  MONTH 月 MONTHS 
  YEAR 年 YEARS 
  MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS" 
  HOUR_MINUTE 小时和分钟 "HOURS:MINUTES" 
  DAY_HOUR 天和小时 "DAYS HOURS" 
  YEAR_MONTH 年和月 "YEARS-MONTHS" 
  HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS" 
  DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES" 
  DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS" 

date_add(now(),interval 2 day):现在时间+2天
date_add(now(0,interval "10:10" minute_second):现在时间添加10分10秒。格式是type的期望的字符串格式
select "1997-21-31" + interval 1 second; => 1997-12-31 00:00:01

to_days(date):返回一个天数(从0年的天数): to_days(950501) => 728779;同to_days('1995-05-01')
from_days(n):给一个天数,返回一个date值: from_days(728779) = > '1995-05-01'

date_format(date,format):格式化日期 date_format(now(),'%W') => Wednesday

%W 星期名字(Sunday……Saturday) 
  %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) 
  %Y 年, 数字, 4 位 
  %y 年, 数字, 2 位 
  %a 缩写的星期名字(Sun……Sat) 
  %d 月份中的天数, 数字(00……31) 
  %e 月份中的天数, 数字(0……31) 
  %m 月, 数字(01……12) 
  %c 月, 数字(1……12) 
  %b 缩写的月份名字(Jan……Dec) 
  %j 一年中的天数(001……366) 
  %H 小时(00……23) 
  %k 小时(0……23) 
  %h 小时(01……12) 
  %I 小时(01……12) 
  %l 小时(1……12) 
  %i 分钟, 数字(00……59) 
  %r 时间,12 小时(hh:mm:ss [AP]M) 
  %T 时间,24 小时(hh:mm:ss) 
  %S 秒(00……59) 
  %s 秒(00……59) 
  %p AM或PM 
  %w 一个星期中的天数(0=Sunday ……6=Saturday ) 
  %U 星期(0……52), 这里星期天是星期的第一天 
  %u 星期(0……52), 这里星期一是星期的第一天 
  %% 一个文字“%”。

TIME_FORMAT(time,format)  DATE_FORMAT('1997-10-04 22:23:00','%D %y %a %d %m %b %j') => '4th 97 Sat 04 10 Oct 277'

curdate();=> '1997-12-15'
curdate()+0; => 19971215
curtime();=>'23:50:26'
curtime()+0;=>230526
now(); 同上
sysdate();同上

unix_timestamp(date):从'1970-01-01 00:00:00'GMT开始的秒数.可以无参数
FROM_UNIXTIME(unix_timestamp);
FROM_UNIXTIME(875996580); =. '1997-10-04 22:23:00'
FROM_UNIXTIME(875996580) + 0; => 19971004222300 

SEC_TO_TIME(seconds)  SEC_TO_TIME(2378);  -> '00:39:38' SEC_TO_TIME(2378) + 0; -> 3938 
TIME_TO_SEC(time) TIME_TO_SEC('00:39:38');  -> 2378


五、 全文搜索功能函数


函数 MATCH (col1,col2,...) AGAINST (expr [IN BOOLEAN MODE | WITH QUERY EXPANSION])

参考URL:http://www.jb51.net/article/28679.htm

六、 加密函数

七、 信息函数

 

BENCHMARK(count ,expr ) 批量运行。用于计时
CHARSET('hehe') => utf-8返回字符串自变量的字符集。
COLLATION('hehe') => utf8_general_ci 返回惠字符串参数的排序方式
CONNECTION_ID()返回对于连接的连接 ID ( 线程 ID) 。每个连接都有各自的唯一 ID 。
CURRENT_USER() => root@localhost
DATABASE() 返回当前使用的数据库名
FOUND_ROWS() :最近一次selcet语句返回的行数(忽略limit干扰),limit 5 -> 5 limit 2,5 -> 7 最大的limit 值

 LAST_INSERT_ID() 自动返回最后一个 INSERT 或 UPDATE 问询为 AUTO_INCREMENT 列设置的第一个 发生的值。
ROW_COUNT() 返回被前面语句升级的、插入的或删除的行数。
VERSION()

八、 其他函数
DEFAULT(col_name ) 返回一个表列的默认值。若该列没有默认值则会产生错误。
FORMAT(X ,D )  format('2123.456',2) => 2,123.46 (X可是整数)将数字 X 的格式写为 '#,###,###.##', 以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形式返回。若   D 为 0, 则返回结果不带有小数点,或不含小数部分。
inet_ntoa('192.159.1.2') => 342343 返回一个代表该地址数值的整数。地址可以是 4 或 8 比特地址。
int_ntoa(32342) => 192.1.22.23
name_const('column',2342) 列别名。支持version()当列明。新增常量列。
SLEEP(秒数) 睡眠过程,键盘输入会被存储,wake后执行。不影响其他线程。
INSERT ... ON DUPLICATE KEY UPDATE http://blog.youkuaiyun.com/ghsau/article/details/23557915

database()
version()
user()
inet_aton('ip') ip-> num
inet_ntoa(num) num->ip
password('xxx')
md5()

九:聚合函数


AVG([DISTINCT] expr ) DISTINCT 选项可用于返回 expr 的不同值的平均值。

group_concat(expr) 链接一个组的字符串结果

MIN([DISTINCT] expr ), MAX([DISTINCT] expr )

SUM([DISTINCT] expr ) 无行返回null

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值