2016-02-14 51 views
0

我有一个大型数据库,其中包含去年4月份的温度值,我使用JPGraph(以及过去2天,上周等的不同图表)显示了所有数据库。由于有很多值,图形看起来不太好,我想在整个期间内均匀分布50个值。从MySQL表中获取特定数量的值

我知道我可以得到数据库(x)中的总行数,将该数除以50(x/50 = n),然后得到每第n行。

是否有MySQL查询可以更高效地执行此操作?

谢谢!

+2

也许使用[用户变量,以产生一个行索引(http://stackoverflow.com/questions/13550750/how-to-add-row -index-as-a-column-to-sql-select-query),然后通过在WHERE子句中对该行索引执行模检查来选择每第n行... – CBroe

回答

0

这里是@ CBroe的建议的实现:

select * 
from (
    select @row:[email protected]+1 row_num, a.* 
    from mytable a 
    join (select @row:=0) b) a 
where row_num % 50 = 0;