我有一个名为mylist的列表生成它导致(1,2,3,4)
是否有一种很好的方法来编写查询,只使用整个列表作为值。
我知道如何做的唯一方法是
INSERT INTO table (col1,col2,col3,col4) VALUES ('%s','%s','%s','%s') % (mylist[0],mylist[1],mylist[2],mylist[3])
答案 0 :(得分:0)
我想这应该有效:
"INSERT INTO table (col1,col2,col3,col4) VALUES ('%s','%s','%s','%s')" % tuple(mylist)
答案 1 :(得分:0)
使用格式这是一种很好的方法:
"INSERT INTO table (col1,col2,col3,col4) VALUES ('{0[0]}','{0[1]}','{0[2]}','{0[3]}')".format(mylist)
答案 2 :(得分:0)
如果你不知道你的元组有多长,你可以用更一般的方式来做:
valuesstr = "("
for i in range(0,len(mylist)): # Do this once for every list item.
valuesstr += "'" + str(mylist[i]) + "'" # Add a value automatically.
if i+1 < len(mylist): # See if we've reached the end yet.
valuesstr += "," # Add separating commas.
valuesstr += ")"
querystr = "INSERT INTO table (col1,col2,col3,col4) VALUES %s" % (valuesstr)
但是如果你知道总会有四个项目,那么其他答案就更容易了。