Python中的MySQL executemany在WHERE子句中

时间:2013-08-17 23:24:59

标签: python mysql-python

我想从MySQL中选择值如下

do_not_select = [1,2,3]

cursor = database.cursor() 
 cursor.executemany("""SELECT * FROM table_a WHERE id != %s""",(do_not_select))
data = cursor.fetchall()

查询返回db中的所有值,形成第一个id(1)。我不希望它选择id 1,2或3。

这是否可以使用executemany命令..?

1 个答案:

答案 0 :(得分:1)

NOT IN一个去:

do_not_select = [1, 2, 3]

cursor.execute("""SELECT * FROM table_a
                    WHERE id NOT IN ({}, {}, {})""".format(do_not_select[0],
                                                           do_not_select[1],
                                                           do_not_select[2]))
data.cursor.fetchall()

我怀疑(虽然我没有测试过这个)这会更好用id do_not_select是一个元组,然后我你可以直接把它发送到你的查询中:

do_not_select = (1, 2, 3)
cursor.execute("""SELECT * FROM table_a
                    WHERE id NOT IN {}""".format(do_not_select))
data.cursor.fetchall()

我很想知道这是否有效 - 如果你试试,请告诉我:)。