我想从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 命令可以实现这一点吗?
最佳答案
尝试一下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()
我很想知道这是否有效 - 如果您尝试一下,请告诉我:)
关于Python MySQL 在 WHERE 子句中执行许多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18294248/