Skip to main content
 首页 » 编程设计

Python MySQL executemany in WHERE 子句

2024年11月01日23EasonJim

我想按如下方式从 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() 

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