在查询 MySQL 数据时,有时并不需要一次性获取所有记录。通过 LIMIT
和 OFFSET
关键字,可轻松控制返回结果的数量和起始位置。下面的示例演示如何在 Python 中使用这些功能。
1. 使用 LIMIT 限制返回行数
如果只想获取前几条记录,可以在 SELECT
语句中加上 LIMIT
:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername", # 替换为你的MySQL用户名
password="yourpassword", # 替换为你的MySQL密码
database="mydatabase"
)
mycursor = mydb.cursor()
# 仅获取前 5 条记录
mycursor.execute("SELECT * FROM customers LIMIT 5")
myresult = mycursor.fetchall()
for row in myresult:
print(row)
以上代码仅返回 customers
表中的 5 条记录。
2. 使用 OFFSET 指定起始位置
有时我们需要跳过前面若干行,然后再获取指定数量的记录。可以结合 LIMIT
和 OFFSET
:
# 跳过前 2 条记录,再取 5 条
mycursor.execute("SELECT * FROM customers LIMIT 5 OFFSET 2")
myresult = mycursor.fetchall()
for row in myresult:
print(row)
此时会从第三条记录开始(即跳过前两条),然后获取 5 条。
3. 应用场景:分页查询
在网页或应用中展示大量数据时,通常会用 LIMIT
+ OFFSET
做分页,例如:
# 每页显示 10 条记录,第 page 页时
page = 3
per_page = 10
offset_val = (page - 1) * per_page
sql = f"SELECT * FROM customers LIMIT {per_page} OFFSET {offset_val}"
mycursor.execute(sql)
这样可在前端配合按钮或页码实现分页显示。
小结
- LIMIT:设定返回记录的数量。
- OFFSET:设定从第几条开始取记录,配合 LIMIT 做分页。
- 本方式适合数据量中等或不需要一次加载全部场景。
通过 LIMIT 与 OFFSET,可以有效控制查询结果的大小,方便数据分段处理或分页显示,提升查询效率和用户体验。