gpt4 book ai didi

mysql - 在 MySQL where 子句中动态创建匹配月份的列表

转载 作者:行者123 更新时间:2023-11-30 00:54:52 24 4
gpt4 key购买 nike

我有一个表,按创建日期记录数据文件的版本(时间戳存储为 INT)。每月最多上传 1 个版本。

在下面的查询中,我试图获取在一月、四月、七月或十月上传的任何版本的导入时间。

> SELECT import_time FROM importlog WHERE
> DATE_FORMAT(FROM_UNIXTIME(import_time), '%m') = 1 OR
> REPEAT(DATE_FORMAT(FROM_UNIXTIME(import_time), '%m') = 1+3,3))

目前,这仅返回 Jan 和 Apr,因为我看到重复只是执行相同的条件 3 次。我认为需要发生的是每次重复语句发生时 1+3 语句都会递增:

1+3;
1+6;
1+9;

我需要这样的动态方法,因为虽然我将其描述为一月,但实际上该日期也可能根据用户而变化。

我的研究并没有取得很大成果,因为我不断回到 auto_increment 来创建 INSERT 查询。任何见解都将受到欢迎。

更新我可以通过一个单独的 Mysql 查询来完成此操作,该查询为所有允许的月份创建一个字符串。$月 = (1,4,7,10)DATE_FORMAT(FROM_UNIXTIME(import_time), '%m') IN $月

所以这是一个快速而肮脏的解决方案,为了我自己的学习,我想知道是否可以有更复杂的解决方案。

亲切的问候,卡尔

最佳答案

你为什么不直接做呢?

SELECT import_time
FROM importlog
WHERE DATE_FORMAT(FROM_UNIXTIME(import_time), '%m') in ('01', '04', '07', '10');

关于mysql - 在 MySQL where 子句中动态创建匹配月份的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20661505/

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