mysql - 从数据库中选择三个序列

标签 mysql sql math

我想将表中的 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 天生成一个循环,该循环将选择像

这样的 ID

1,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/

相关文章:

java - 可以为多查询方法保持 JDBC 连接打开吗? (数据库使用MySQL)

mysql - Spring Data R2DBC 自定义转换不适用于 json 数组

MySQL LIKE 关键字未返回预期结果

sql - 在插入语句中使用 OUTPUT 时,如果您在 select 中指定 order by ,它是否遵循 select 中指定的顺序?

javascript - jQuery 的字符串简单数学运算

math - 为什么 powerset 给出 2^N 的时间复杂度?

mysql - Operand should contain 2 column(s) 错误 in mysql NOT IN

mysql - 用户定义函数 MySQL Workbench

sql - 有没有办法强制 Oracle 在加入访问后评估过滤器?

c - 这段代码对应的矩阵/vector 运算是什么?