来自一段时间的记录和一个额外的mysql记录

时间:2017-04-18 11:11:47

标签: 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) );

1 个答案:

答案 0 :(得分:0)

You cannot do that

  

LIMIT子句可用于约束SELECT语句返回的行数。 LIMIT需要一个或两个数字参数,它们都必须是非负整数常量,但有以下例外:

     
      
  • 在预准备语句中,可以使用?指定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