Cách chuẩn là sử dụng trình lặp con trỏ tích hợp sẵn.
curs.execute('select * from people')
for row in curs:
print row
Bạn có thể sử dụng fetchall()
để nhận tất cả các hàng cùng một lúc.
for row in curs.fetchall():
print row
Có thể thuận tiện khi sử dụng điều này để tạo danh sách Python chứa các giá trị được trả về:
curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]
Điều này có thể hữu ích cho các tập kết quả nhỏ hơn, nhưng có thể có tác dụng phụ xấu nếu tập kết quả lớn.
-
Bạn phải đợi toàn bộ tập hợp kết quả được trả lại trong quá trình khách hàng của bạn.
-
Bạn có thể chiếm nhiều bộ nhớ trong ứng dụng khách của mình để chứa danh sách đã tạo sẵn.
-
Có thể mất một lúc để Python tạo và giải cấu trúc danh sách mà bạn sẽ loại bỏ ngay lập tức.
Nếu bạn biết có một hàng được trả về trong tập kết quả, bạn có thể gọi fetchone()
để có được một hàng duy nhất.
curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]
Cuối cùng, bạn có thể lặp lại tập kết quả tìm nạp từng hàng một. Nói chung, không có lợi thế cụ thể nào khi thực hiện việc này so với việc sử dụng trình lặp.
row = curs.fetchone()
while row:
print row
row = curs.fetchone()