2011-08-10 28 views
24

Có cách nào thanh lịch để nhận được một kết quả duy nhất từ ​​truy vấn SELECT SQLite khi sử dụng python 2.7 không?làm thế nào để có được một kết quả duy nhất từ ​​một truy vấn SQLite trong python?

ví dụ:

conn = sqlite3.connect('db_path.db') 
cursor=conn.cursor() 
cursor.execute("SELECT MAX(value) FROM table") 

for row in cursor: 
    for elem in row: 
     maxVal = elem 

là có một cách để tránh những lồng for s và có được giá trị trực tiếp? Tôi đã thử

maxVal = cursor[0][0] 

mà không thành công.

Trả lời

-2

hoặc bạn có thể thử: cursor.execute("SELECT * FROM table where name='martin'")

3

Hoặc bạn có thể viết một hàm wrapper rằng, cho SQL, trả về một kết quả vô hướng:

def get_scalar_result(conn, sql): 
    cursor=conn.cursor() 
    cursor.execute(sql) 

    return cursor.fetchone()[0] 

Tôi xin lỗi vì Python có thể ít hơn cú pháp chính xác ở trên, nhưng tôi hy vọng bạn có được ý tưởng.

1

Nếu bạn không sử dụng pysqlite đó đã được xây dựng trong cursor.fetchone

cursor.execute("select value from table order by value desc limit 1") 
Các vấn đề liên quan