【发布时间】:2019-05-20 14:09:17
【问题描述】:
我有一个名为clients.db 的sqlite 数据库和一个名为prices 的表。在表中我有列['date', 'xyz', 'abc', 'sta, 'vert']。我正在从 python 3 访问数据库。
我可以很容易地得到一个特定的数字:
conn = sqlite3.connect('clients.db')
c = conn.cursor()
c.execute('''SELECT "xyz" FROM prices WHERE date=?''', ('2019-01-07', ))
conn.close()
print(c.fetchone()[0])
这会按预期返回1902。
但是,当我尝试以下操作时,我得到的不是预期的数字xyz。
conn = sqlite3.connect('clients.db')
c = conn.cursor()
c.execute('''SELECT ? FROM prices WHERE date=?''', ('xyz', '2019-01-07', ))
conn.close()
print(c.fetchone()[0])
当我添加a =? 时,我得到sqlite3.OperationalError: near "=": syntax error:
conn = sqlite3.connect('clients.db')
c = conn.cursor()
c.execute('''SELECT =? FROM prices WHERE date=?''', ('xyz', '2019-01-07', ))
conn.close()
print(c.fetchone()[0])
【问题讨论】:
-
在您的所有示例中,您在日期末尾都缺少结束引号 ',即,如果您的代码中有第一个引号,则即使是第一个也不应该工作