我正在尝试遍历名为Throughput的表中的所有行,但是对于特定的DeviceName(我已经存储在data ['DeviceName']中。我尝试了以下内容,但它不起作用:
for row in cursor.execute("select * from Throughput where DeviceName=%s"), %(data['DeviceName']):
编辑:也尝试了这个,但它不起作用:
for row in cursor.execute("select * from Throughput where(DeviceName), values(?)", (data['DeviceName']) ):
EDIT2:我最终工作代码的片段:
query = "select * from Throughput where DeviceName = '%s'" % data['Device Name']
try:
for row in cursor.execute(query):
答案 0 :(得分:40)
您还可以parameterize声明:
...
cursor.execute("select * from Throughput where DeviceName = ?", data['DeviceName'])
...
这是一种更好的方法,原因如下:
答案 1 :(得分:0)
我不知道我的问题是否与你的相似,但我的问题是因为我写了一个类似的查询
WHERE date > ?" "OR date NOT LIKE '9%'
我忘记在第一行的末尾或第二行的末尾放置一个简单的空格 (' ')。最后我通过这样做解决了它。最终代码如下:
WHERE date > ? "
"OR date NOT LIKE '9%'
注意:注意第一行末尾的最后一个' '。
答案 2 :(得分:-15)
在不知道列DeviceName的类型和数据库服务器的情况下,我会引用用于约束DeviceName的字符串
"select * from Throughput where DeviceName='%s'" % data['DeviceName']
看看会发生什么。