我正在尝试在 python 脚本中编写一个对 sqlite 数据库的简单查询。为了测试我的参数是否正确,我尝试从 ipython 命令行运行查询。它看起来像这样:
import sqlite3
db = 'G:\path\to\db\file.sqlite'
conn = sqlite3.connect(db)
results = conn.execute('SELECT * FROM studies').fetchall()
出于某种原因,我的结果完全是空的。然后我尝试了另一个测试查询:
results = conn.execute('SELECT id FROM studies').fetchall()
哪个正确返回。我认为星号 [错误,请参阅下面的第二次更新] 有问题,所以我尝试了从默认 python 命令行中的“SELECT * FROM Studies”查询。瞧,它正确返回。我尝试了所有正常的方法来逃避星号,结果却遇到了各种各样的错误消息。有没有办法在 IPython 中运行这个查询?
编辑:对不起,我错误地认为 IronPython 和 IPython 是一样的。我的意思是 IPython 命令行,而不是 IronPython 框架。
EDIT2:好的,事实证明星号确实有效,如此成功的查询所示:
'SELECT COUNT(*) FROM studies'
从这里发布的建议来看,错误结果是由于尝试返回具有多个字段的记录,即:
'SELECT field1,field2 FROM studies'
这仍然会导致返回记录。我已相应地更改了问题的标题。