2

我想从 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()

该查询返回数据库中除第一个 id (1) 之外的所有值。但是,我不希望它选择 id 1,2 或 3。

这可以使用executemany命令吗?

4

1 回答 1

2

试一试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()

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

于 2013-08-17T23:30:19.793 回答