2011-08-10 55 views
24

当使用python 2.7时,是否有从SQLite SELECT查询中获得单个结果的优雅方式?如何从python中的SQLite查询中获取单个结果?

例如:

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 

有没有办法避免这些嵌套for S和直接获得价值?我试过

maxVal = cursor[0][0] 

没有任何成功。

回答

-2

,或者你可以尝试: cursor.execute("SELECT * FROM table where name='martin'")

3

或者你可以写一个包装函数,考虑到SQL,返回标结果:

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

    return cursor.fetchone()[0] 

我对上面可能不太符合语法正确的Python表示歉意,但我希望你明白。

1

如果你不使用pysqlite已经内置在cursor.fetchone

cursor.execute("select value from table order by value desc limit 1") 
相关问题