续查10万数据,每次查三万的实例SQL,不用offset和 last_id实现,只取用limit实现,提前设置准确的page和size,代码示例
时间: 2024-05-07 07:16:06 浏览: 39
假设我们要查询一张名为`user`的表,其中有10万条记录。
我们可以首先查询总记录数,然后计算出总页数。假设每页显示3万条记录,则总页数为4页。
查询总记录数的SQL语句为:
```
SELECT COUNT(*) FROM user;
```
我们可以用Python代码来实现:
```python
import pymysql
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='123456', database='test')
# 查询总记录数
cursor = conn.cursor()
cursor.execute('SELECT COUNT(*) FROM user;')
total_count = cursor.fetchone()[0]
# 计算总页数
page_size = 30000
total_page = (total_count + page_size - 1) // page_size
# 关闭数据库连接
cursor.close()
conn.close()
```
接下来,我们可以根据页码和每页大小来查询数据。假设要查询第2页的数据,每页大小为3万条记录,则SQL语句为:
```
SELECT * FROM user LIMIT 30000, 30000;
```
其中,第一个参数表示偏移量,即跳过前面的3万条记录,第二个参数表示每页大小。
我们可以用Python代码来实现:
```python
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='123456', database='test')
# 查询第2页的数据
cursor = conn.cursor()
page = 2
start = (page - 1) * page_size
cursor.execute(f'SELECT * FROM user LIMIT {start}, {page_size};')
data = cursor.fetchall()
# 输出数据
for row in data:
print(row)
# 关闭数据库连接
cursor.close()
conn.close()
```
这样,我们就可以不用offset和last_id实现分页查询了。
阅读全文