日期:2014-05-16 浏览次数:20809 次
作者:朦朧中的罪惡 | 分类: [MySQL ] | 浏览:193 | 标签: MySQL 资料翻译
本文是翻译自6 useful MySQL queries
查询语句的创建是一门艺术,一门使用SQL和命令进行精确和高效查询数据库的艺术。在SELECT查询中,你可以使用JOIN,WHERE和 HAVING语句来定义结果的行和列和范围。Group By可以将结果行组合为可以分析的概要数据,UNION则可以组合多个查询的结果,INSERT、DELETE和UPDATE命令可以关系到JOIN语 句,INSERT....SELECT可以将一个查询的结果直接插入到另外一个数据表中,而UPDATE和DELETE语句可以由WHERE来控制影响范 围。
1.计算年龄
如果你有一个人的生日而需要计算这个人的年龄,将下列语句中@dateofbirth替换为生日即可
SELECT DATE_FORMAT ( FROM_DAYS ( TO_DAYS ( now ()) - TO_DAYS (@dateofbirth)), '%Y') + 0;
2.计算两个日期的差值
计算两个日期的分,秒,小时和天数的差值,如果dt1和dt2的的格式是‘yyyy-mm-dd hh:mm:ss’,那么两个日期之间的秒数差值就是
UNIX_TIMESTAMP ( dt2 ) - UNIX_TIMESTAMP ( dt1 )
3.显示出现了N次的栏目的值
SELECT
id
FROM
tbl
GROUP BY
id
HAVING COUNT
(*) = N;
4.计算两个日期之间的工作日
计算两个日期之间的工作日的最简单方法是是一个含有d日期栏目和另一个标定了在已知年份中所有日期是否为休息日的栏目的日历表,然后下面的查询就是找到在Start和Stop两个日期之间所有的工作日
SELECT
COUNT
(*)
FROM
calendar
WHERE
d
BETWEEN
Start
AND
Stop
AND
DAYOFWEEK
(d)
NOT IN
(1,7)
AND
holiday=0;
5.找到一个表的主键
SELECT
k.column_name