在给定天数的情况下,如何查询X天前创建的记录?

时间:2019-01-26 18:01:00

标签: mysql sql

我正在寻找一个查询,该查询从X天前在给定数组中创建的表中选择所有记录。

所以,给定[3,8,13,21,34,50];

我如何找到在3、8、13、21、34、50天前创建的MySQL所有记录?

MySQL可以确定3天前是什么时候吗,或者我需要在那个特定日期传递过去?

1 个答案:

答案 0 :(得分:1)

我不完全理解您的问题,因为MySQL不支持数组。

如果您有 date 列,则可以执行以下操作:

where created_at in (curdate() - interval 3 day, 
                     curdate() - interval 8 day,
                     . . .
                    )

如果您有日期/时间列,则可以将其修改为:

where date(created_at) in (curdate() - interval 3 day, 
                           curdate() - interval 8 day,
                           . . .
                          )

A,这阻止了索引的使用。如果这是一个问题,那么可以使用一些更索引友好的方法来重新表述。