动态MySql查询,每天返回X次结果

时间:2013-10-04 19:30:00

标签: mysql timer division

我正试图在我们的首席执行官的要求下解决这个问题,我们每小时都有一个与我们的数据库表对话的CRON脚本,这个表只包含两行,一行用于输出值,用于{ {1}}。我每小时运行一次,每天24小时。该表如下所示。

times per day returned

我正在尝试创建一个查询,每天返回+-------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | times | int(2) | YES | | NULL | | | value | char(64) | YES | | NULL | | +-------+------------------+------+-----+---------+----------------+ ,X value, 所以我们说......

times

我希望在24小时内返回INSERT INTO table (times, value) VALUES (1, 'Value 1'), (4, 'Value 2'), (9, 'Value 3'); 一次,在24小时内返回Value 1四次,Value 2九次。因为9不能被24整除,所以我们可以使用floor()或ceil()或round(),只要在24小时内返回9次就无所谓。

我甚至无法直观地查询此查询,更不用说实现它= /

当我开始工作时,我会发布我正在尝试的东西......

更新

这会让我花几个小时来运行它看起来像

Value 3

SELECT (24 / times) AS hours FROM table;

1 个答案:

答案 0 :(得分:0)

您可以创建一个包含24行的单独表格,每天每小时一个,并包括是否应该在该小时内返回特定值?然后加入,而不是试图计算一些东西。

像:

+-------------+-----------+-----------+-----------+
|Hr of day    |Run Value 1|Run Value 2|Run Value 3|
+-------------+-----------+-----------+-----------+
|  1:00am     |    1      |    0      |    1      |
|  2:00am     |    1      |    0      |    0      |
|  3:00am     |    1      |    0      |    0      |
|  4:00am     |    1      |    0      |    1      |
|  5:00am     |    1      |    0      |    0      |
|  6:00am     |    1      |    1      |    0      |
|  ...