如何在MySQL中从每10行中选择1行

时间:2013-04-25 10:20:05

标签: php mysql

我正在将给定信号的实时更改记录到我的数据库表中。

然后我绘制线图以显示信号电平的变化。

我想在表格中得到(10n + 1) th 行来制作粗略的图表。 10也是任意的。用户可以将其更改为其他值。

有人知道如何使用MySQL查询

如果不是,我会在选择所有数据后使用PHP。

我的表结构是:

|id        |signal1   |signal2   | signal 3   |
+----------+----------+----------+------------+
|1         |0.41452   | 1.32135  | 0.31231    |
...

2 个答案:

答案 0 :(得分:4)

如果您有auto_incrememt id列,则可以选择可被n整除的行

SELECT * FROM tableName1 WHERE MOD(id,10)=0; 
// id divided by 10 with a remainder equal to 0 (exact)

或没有连续列id

SELECT * FROM ( 
    SELECT 
        @row := @row +1 AS rowNum, colName1 
    FROM ( 
        SELECT @row :=0) r, tableName1
    ) ranked 
WHERE rowNum % 10 = 1 

答案 1 :(得分:0)

如果你的表有自动增量id(intID),那么你应该尝试这个代码。我的表中只有26条记录。

select * from tablename where intId 
        in (select case  (intId%10=0) when 1 then intId else 0 end as x from tablename )

输出: -

10  sdf KK201300010 123456  Regular
20  sdf KK201300020 123456  Regular

它将显示每10条记录中的每条记录。 希望它会对你有所帮助。