我正在从SQLITE表中检索一个值,然后使用SELECT FROM WHERE语句使用该值从另一个表中检索数据。我不能使用检索到的值来查询其他表,即使当我独立于要查询的表来检索此值时,这些值似乎都匹配。我收到错误绑定参数0-可能是不受支持的类型。我从我在文档中阅读的内容中传递了我正确相信的价值,但是显然存在错误。
编辑:最终目标是选择Name和EndTime,然后在同一表中的列值= Name的情况下,将EndTime值插入同一数据库的另一个表中。在下面添加了更新代码,可以大致了解我要完成的工作。
当我打印nameItem时,它看起来是一个unicode字符串,(u'Something')就是它的显示方式。我不知道这是否是编码问题,但是我之前曾使用过类似的查询,但并未遇到此问题。
我试图直接在SELECT查询中使用我要搜索的文本,但这可以工作,但是当将其作为变量传递时,我仍然会得到不受支持的类型。
c.execute('SELECT Name FROM Expected WHERE Timing = 1')
timeList = c.fetchall()
for i in range(len(timeList)):
nameItem = timeList[i]
c.execute('SELECT "EndTime" FROM Expected WHERE "Name" = ?', (nameItem,))
end = c.fetchone()
conn = sqlite3.connect(otherDb)
c = conn.cursor()
c.execute('UPDATE Individuals SET Ending = end WHERE NAME = NameItem')
我希望它可以检索与nameItem当前值相关的时间。
答案 0 :(得分:0)
尝试的第一个解决方法是使用字符串而不是元组(注意timeList
是元组列表):
nameItem = timeList[i][0]
但是最好不要使用len,类似这样:
c.execute('SELECT Name FROM Expected WHERE Timing = 1')
timeList = c.fetchall()
for elem in timeList:
nameItem = elem[0]
c.execute('SELECT "EndTime" FROM Expected WHERE "Name" = ?', (nameItem,))
end = c.fetchone()
更好的是在第一个查询中获取EndTime(在给定的上下文中看起来可以接受):
c.execute('SELECT Name, EndTime FROM Expected WHERE Timing = 1')
timeList = c.fetchall()
for elem in timeList:
name = elem[0]
end_time = elem[1]