MySQL在范围之间选择n行

时间:2012-01-02 01:27:22

标签: mysql graph line range between

说我有一个看起来像这样的表:

ID| Value
1 | 98
2 | 56
3 | 37
4 | 100
5 | 96
6 | 23

...我只想选择四行。但是,行需要代表集合(它将显示为折线图),因此我希望,在这种情况下,这样的事情:

ID| Value
1 | 98
2 | 56
4 | 100
6 | 23

即,最多n个(在这种情况下为4个)结果的范围,包括最小值和最大值,每个结果尽可能与其余结果“间隔”。

我对MySQL要求的是什么,如果是这样,你会推荐哪种其他方式?我非常希望避免选择每一行,然后使用PHP过滤掉一些。

非常感谢

费拉

1 个答案:

答案 0 :(得分:0)

这是可能的,但你不想这样做。

您可以提取最小值(SELECT MIN())和最大值(SELECT MAX()),可以确定集合中的结果数量(SELECT COUNT())。使用计数,您可以在结果集(SELECT ... LIMIT 2,1)中选择特定行。然后你可以UNION所有这些在一起。但它确实是一个非常可怕的SQL语句,而且它确实不是你想要使用SQL的东西。

您可以更好地提取所有有问题的结果,也许可以进行适当的排序,并在不同的级别过滤结果。