我想将表中的 ID 分为三组,每天选择其中一组并每 4 天重复一次循环。我不知道我的解释是否正确,但我会尝试举个例子。假设我们有 ids 1,2,3,4,5,6,7,8,9,10...n
第一天我要选择1,4,7,10...n
第二天2,5,8,11...n
第三天3,6,9,12...n
。当我对奇数和偶数 id 做几乎相同的事情时,这非常容易。在奇数天,我选择奇数 ID,在偶数天,我选择偶数 ID。但现在我需要在 3 天的时间内完成。提前谢谢你。
最佳答案
使用 MOD(x,y) 函数返回 x 除以 y 的余数和函数 TO_DAYS(some_date_here) 返回自 0 年以来的天数。通过在 TO_DAYS 中使用函数 NOW() 我们得到一个每天都有新号码。也将其放入模数中,这将每 3 天生成一个循环,该循环将选择像
这样的 ID1,4,7,10...
第二天
2,5,8,11...
第二天
3,6,9,12
第二天再次从顶部返回
所以这个查询每天都无需修改就可以工作:
SELECT * FROM my_table WHERE MOD(my_id,3)=MOD(TO_DAYS(NOW()),3)
此分组可以轻松更改,只需将“3”更改为您想要的任何内容(注意您需要更改 BOTH MOD()
中的“3”小号)
关于mysql - 从数据库中选择三个序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29232779/