0

だから、私は次のようなSQLiteプリペアドステートメントを実行しようとしています:

意味

c.execute('''CREATE TABLE IF NOT EXISTS tab (
    _id integer PRIMARY KEY AUTOINCREMENT,
    obj text NOT NULL,
    val int NOT NULL
    ) ;''')

次のプリペアドステートメントを実行したい:

list_of_vars=['foo','bar']
statement = "SELECT * FROM tab WHERE obj IN ({0}) AND val BETWEEN ? AND ?".format(', '.join(['?' * len(list_of_vars)]))

これに対する私の解決策は現時点ではかなり醜いです、そして私はこれを行うためのよりエレガントな方法を探しています...

vals=list_of_vars
vals.append(0)
vals.append(100)
c.execute(statement, vals)

何かご意見は?

4

1 に答える 1

4

リストは非常に簡単に連結できます。

c.execute(statement, list_of_vars + [0, 100])
于 2013-01-09T20:35:55.477 に答える