MYSQL:如何从第3行开始选择每第4行?

时间:2019-03-20 11:13:02

标签: mysql sql mysqli

表示结果应选择第3、7、11、15行等。 每行都有一个ID,按升序排列。 我被困了几个小时!非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

假设您的架构为:

   CREATE TABLE t1 (
      id int(11) DEFAULT NULL,
      data varchar(20) DEFAULT NULL
    );

mysql> select * from t1;
+------+--------+
| id   | data   |
+------+--------+
|    1 | abc-1  |
|    2 | abc-2  |
|    3 | abc-3  |
|    4 | abc-4  |
|    5 | abc-5  |
|    6 | abc-6  |
|    7 | abc-7  |
|    8 | abc-8  |
|    9 | abc-9  |
|   10 | abc-10 |
|   11 | abc-11 |
|   12 | abc-12 |
|   13 | abc-13 |
|   14 | abc-14 |
|   15 | abc-15 |
|   16 | abc-16 |
+------+--------+
16 rows in set (0.00 sec)

mysql> select id,data from  (select mod(@r:=@r+1,4) as isfetch,id,data from t1,(select @r:=0) s) k where k.isfetch=0 order by id;
+------+--------+
| id   | data   |
+------+--------+
|    4 | abc-4  |
|    8 | abc-8  |
|   12 | abc-12 |
|   16 | abc-16 |
+------+--------+
4 rows in set (0.01 sec)

答案 1 :(得分:0)

一种更简单的方法是在id本身上使用mod:

select * from table where (id + 1) mod 4 = 0;