2013-10-04 61 views
0

我想在我們的CEO的要求,環繞此我的頭,我們有一個cron腳本到我們的數據庫表談到每小時X次,此表只包含兩個行,一個用於輸出值,開啓爲times per day returned。我每天24小時每小時運行一次。表格如下所示。動態MySQL查詢將返回結果的一天

+-------+------------------+------+-----+---------+----------------+ 
| 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 |    | 
+-------+------------------+------+-----+---------+----------------+ 

我試圖創建一個查詢,這將返回value,X times一天, 所以讓我們說......

INSERT INTO table 
    (times, value) 
VALUES 
    (1, 'Value 1'), 
    (4, 'Value 2'), 
    (9, 'Value 3'); 

我預計在24次返回Value 1小時期間,Value 2 24小時內四次,Value 3九次。由於9不能被24整除,我們可以使用floor()或ceil()或round(),只要在24小時內返回9次就沒有關係。

我有麻煩,甚至可視化這個查詢,要少得多實現它=/

我會後的東西我想出去,我得到它的工作....

UPDATE

這會給我時間運行,它看起來像

SELECT (24/times) AS hours FROM table;

+---------+ 
| hours | 
+---------+ 
| 24.0000 | 
| 6.0000 | 
| 2.6667 | 
+---------+ 

回答

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  | 
| ...