1.TIMESTAMPDIFF
语法:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)
说明:返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:
- FRAC_SECOND。表示间隔是毫秒
- SECOND。秒
- MINUTE。分钟
- HOUR。小时
- DAY。天
- WEEK。星期
- MONTH。月
- QUARTER。季度
- YEAR。年
使用范例:
$sql = "SELECT d_userid FROM d_needs WHERE addtime BETWEEN '".$stime."' AND '".$etime."' AND TIMESTAMPDIFF(MINUTE,d_stime,d_etime) < '".$finish_time."' GROUP BY d_userid";
意思是想要查到开始和结束时间差小于5分钟的人,直接可以作为条件使用
2.explain
我们需要知道SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过EXPLAIN去完成。EXPLAIN命令是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。需要注意的是,生成的QEP并不确定,它可能会根据很多因素发生改变。MySQL不会将一个QEP和某个给定查询绑定,QEP将由SQL语句每次执行时的实际情况确定,即便使用存储过程也是如此。尽管在存储过程中SQL语句都是预先解析过的,但QEP仍然会在每次调用存储过程的时候才被确定。
用法非常简单:explain + sql语句即可
explain SELECT paymoney FROM `d_needs` WHERE `pub_type` = 1
执行后会返回表格,详细解释百度