我的表格有 26 列,其中前 3 列是日、月、年。其余的专栏有一些我必须展示的信息。现在我必须根据年份的最后一天获取记录。 我尝试过编写代码。
select * from subscription_stats where year * 10000 + month * 100 + day = LAST_DAY(CONCAT(year,'-',month,'-',day))
但这将从每个月的最后一天获取记录,并且我想要几年的最后一天。而且,当我在记录中没有实际的最后一天时,此代码将不起作用。因此,我想要一些功能,例如该月的最大日期,而不是 LAST_DAY。我怎样才能实现这个功能。
最佳答案
这是你想要的吗?
select *
from subscription_stats
where month = 12 and day = 31;
这会返回 12 月 31 日的行。
如果您没有所有日期的记录,并且您想要数据中的最后一天:
select ss.*
from subscription_stats ss
where (ss.month, ss.day) = (select ss2.month, ss2.day
subscription_stats ss2
where ss2.year = ss.year
order by ss2.month desc, ss2.day desc
);
关于mysql - 根据年份的最后一天选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483908/