2011-08-10 17 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のを避け、直接値を取得する方法はありますか?私は試しました

maxVal = cursor[0][0] 

成功なし。

cursor.fetchone()[0] 

答えて

50

は、私はあなたがCursor.fetchone()を探していると思います

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

    return cursor.fetchone()[0] 

私は上記の構文上正しいPythonを謝っていますが、あなたがそのアイデアを得ることを願っています。

-2

またはあなたが試すことができます: cursor.execute("SELECT * FROM table where name='martin'")

3

それとも、SQL与え、スカラー結果を返し、ラッパー関数を書くことができ:

1

あなたはcursor.fetchone

cursor.execute("select value from table order by value desc limit 1") 
に建てられたpysqliteのを使用していない場合
関連する問題