gpt4 book ai didi

mysql - 按日期加入时查询缓慢(日历表)

转载 作者:行者123 更新时间:2023-11-29 06:07:02 25 4
gpt4 key购买 nike

我正在尝试实现 this solution .

我有联系人和日历表。联系人有 created_at 时间戳列,日历有 date 列,这是日期。

所以查询:

select contacts.id, calendar.date
from contacts
right join calendar on date(contacts.created_at) = calendar.date

永远不会结束。

我读过 date(contacts.created_at) 会减慢它的速度,一种可能的解决方案是将 created_at 列分成两列:date时间。但我不喜欢这个解决方案,因为我需要时间戳列。还有其他方法可以处理这种情况吗?

基本上这是一个著名的问题,当您获得一些带有日期的统计数据并且需要用零填充日期间隙时。所以也许值得尝试在 PHP 中处理这个......

最佳答案

您可以使用生成的列来存储 created_at 列的日期部分:

ALTER TABLE contacts
ADD created_at_date AS (date(created_at)) STORED;

然后您可以像往常一样在此列上JOIN

请注意,生成的列在 MySQL 5.7.5 及更高版本中可用。

关于mysql - 按日期加入时查询缓慢(日历表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40867855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com