我有一个包含date列的表(键入mysql date : yyyy-mm-dd)
我已经完成了这个请求:
Select Month(MAX(date)) AS last_month, YEAR(MAX(date)) AS last_year FROM mytable来获取去年和上个月的数据。
我想在去年和上个月在一个请求中选择所有数据。
我如何使用如下内容:
Select * from mytable where date like 'last_year-last_month-%'这是否在子查询中??
发布于 2011-03-03 19:37:06
感谢大家,
这是一个很好的要求:
SELECT * FROM mytable
WHERE MONTH(date) = (select Month(MAX(date)) FROM mytable)
AND YEAR(date) = (select YEAR(MAX(date)) FROM mytable)
ORDER BY date ASC发布于 2011-03-03 19:14:33
这应该可以做到这一点(虽然可能不是最好的解决方案):
SELECT * FROM mytable
WHERE MONTH(date) = (SELECT MONTH(MAX(date) FROM mytable))
AND YEAR(date) = (SELECT YEAR(MAX(date) FROM mytable));编辑:更正了括号。
发布于 2011-03-03 19:40:38
表是否在持续更新?
如果是这样,那么您可以不使用子查询,因为它们会大大降低查询速度。
这将选择当前月份的所有内容。
SELECT * FROM mytable
WHERE MONTH(date) = MONTH(NOW())
AND YEAR(date) = YEAR(NOW())
ORDER BY date ASC这个选择了当前和去年的所有内容。
SELECT * FROM mytable
WHERE YEAR(date) > YEAR(NOW())-1
ORDER BY date ASChttps://stackoverflow.com/questions/5179896
复制相似问题