在sql中要求id每隔m取1条数据一共取n条数据

在sql中,要求id每隔m取1条数据,一共取出n条数据,这个sql可以这么写:

SELECT id FROM user WHERE id % m = 1 LIMIT n;

将语句中的m和n替换成需要的值,比如我想要每隔3条取一条数据,一共取10条;

SELECT id FROM user WHERE id % 3 = 1 LIMIT 10;

输出

+----+
| id |
+----+
|  1 |
|  4 |
|  7 |
| 10 |
| 13 |
| 16 |
| 19 |
| 22 |
| 25 |
| 28 |
+----+
10 rows in set (0.34 sec)

如果想起始值不是从1开始,比如我想要从2开始,调整为

SELECT id FROM user WHERE id % 3 = 2 LIMIT 10;

输出

+----+
| id |
+----+
|  2 |
|  5 |
|  8 |
| 11 |
| 14 |
| 17 |
| 20 |
| 23 |
| 26 |
| 29 |
+----+
10 rows in set (0.00 sec)

实际就是使用取模计算来确定取值范围,当然还可以在 WHERE 语句中加入更多的条件来满足需要。

标题:在sql中要求id每隔m取1条数据一共取n条数据

原文链接:https://beltxman.com/3938.html

若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。

发表评论

您的电子邮箱地址不会被公开。

Scroll to top