对python的INSERT查询

时间:2014-07-09 15:56:31

标签: python mysql

我有一个名为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])

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)

但是如果你知道总会有四个项目,那么其他答案就更容易了。