Python MySQL 在 WHERE 子句中执行许多

标签 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()

查询返回数据库中除第一个 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/

相关文章:

Python分布式/网络网络应用程序

python - numpy knn 与向量化嵌套矩阵

python - 在 Python 3 中,使用 mysql.connector,在 insert 中传递 mysql 函数

mysql - 更新 SQL 查询的 Python 语法

macos - Ansible 要求安装 MySQL-python,尽管它已经安装

python - 尝试根据每行另一列行的值拆分数据框列

python - OSX Python系统框架意外覆盖

javascript - 使用 AJAX 上传文件、处理并使用 Flask 将结果返回到 Javascript

python - 在python mysqldb中转义单引号

python - MySQL 表创建模板 - Python