2017-04-18 42 views
0

我有一個非常簡單的MySQL表,其中包含時間值對。記錄從一個時間段和一個額外的mysql

我需要從上週(或任何期間)和另外一條記錄中獲取項目,因爲我想從數據中繪製圖表,並且需要知道1週期間之前的最後一個值,所以開始圖表將不會爲空。 (項目是非常罕見的,它就像1-2記錄每天)

我想這樣的事情,但似乎這是完全錯誤的語法:

SELECT * from mytable ORDER BY Time desc 
LIMIT (SELECT count(*) from mytable WHERE Time > NOW() - INTERVAL 1 WEEK)+1; 

表結構:

CREATE TABLE mytable ( 
Time datetime NOT NULL DEFAULT '0000-00-00 00:00:00', 
Value double DEFAULT NULL, PRIMARY KEY (Time)); 
+0

他們團結起來? –

+0

從哪裏來的額外記錄來了?範圍之前或之後? –

+0

由於我想從上週獲取數據,因此額外的記錄必須是期間之前的最後一個記錄。 – rszf

回答

0

You cannot do that

LIMIT子句可用於約束SELECT語句返回的行數。 LIMIT取一個或兩個數字參數,它必須都是非負整數常數,但以下情況除外:

  • 內編制報表,極限參數可以使用指定?佔位符標記。

  • 在存儲的程序中,可以使用整數值例程參數或局部變量來指定LIMIT參數。

你能做些什麼在所需的時間間隔是選擇行和與外部您可以發佈你的表結構的第一個

SELECT * 
FROM mytable 
WHERE Time > NOW() - INTERVAL 1 WEEK 
UNION ALL 
SELECT * 
FROM mytable 
WHERE Time <= NOW() - INTERVAL 1 WEEK 
ORDER BY Time desc 
LIMIT 1 
+0

這將只返回1記錄..但後,我把第二選擇括號內,它工作正常......謝謝.. – rszf

相關問題