我有一张包含数千条记录的表格,这些记录代表某个时刻房间的温度。到目前为止,我一直使用JQuery渲染温度的客户端图。但是,随着记录数量的增加,我认为向视图提供如此多的数据是没有意义的,如果它无法在单个图形中表示它们。
我想知道是否存在一个MySQL查询,它返回表中每个 n 记录中的一个。如果是这样的话,我想我可以在一段时间内获得有代表性的温度测量样本。
有什么想法吗?提前谢谢。
修改:添加表格结构。
CREATE TABLE IF NOT EXISTS `temperature` (
`nid` int(10) unsigned NOT NULL COMMENT 'Node identifier',
`temperature` float unsigned NOT NULL COMMENT 'Temperature in Celsius degrees',
`timestamp` int(10) unsigned NOT NULL COMMENT 'Unix timestamp of the temperature record',
PRIMARY KEY (`nid`,`timestamp`)
)
答案 0 :(得分:2)
您可以执行此操作,子查询是您的查询,并为其添加行号:
SET @rows=0;
SELECT * from(
SELECT @rows:=@rows+1 AS rowNumber,nid,temperature,`timestamp`
FROM temperature
) yourQuery
WHERE MOD(rowNumber, 5)=0
mod会选择每隔5行:这里的5就是你的n
。所以第5行,然后是第10行,第15行等。
答案 1 :(得分:0)
不确定您的要求但有多种选择
只是一个带有限制的简单查询:
select * from tablename limit 1000
以下是使用日期函数的示例。以下查询选择最近30天内具有date_col值的所有行:
mysql> SELECT something FROM tbl_name
-> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;