python - sqlalchemy 查询 : select using list of tuples

标签 python mysql sqlalchemy

所以我有一个元组列表,例如 [('Alex', 20), ('Steve', 50)]

现在我需要在 Users 表上触发一个选择查询来获取匹配的记录。

我这样试过:-

users = [('Alex', 20), ('Steve', 50)]
names = [r[0] for r in users]
ages = [r[1] for r in users]

query = self.session.query(Users).filter(
                      and_(Users.name.in_(names),
                      Users.age.in_(ages)))

我想要 Alex 用户年龄 20Steve 用户年龄 50 的记录,但是这个查询还会给我 Alex 年龄 50 的用户。

所以这个查询并没有真正解决。需要一些帮助来解决这个问题。

最佳答案

要仅获取姓名和年龄与您的 users 列表匹配的用户,您必须将 nameage 过滤器与 AND 子句并将它们连接到 OR 子句中。 例如。像这样:

user_filters = [and_(Users.name == name, Users.age == age)
                for name, age in users]
self.session.query(Users).filter(or_(*user_filters))

关于python - sqlalchemy 查询 : select using list of tuples,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32584301/

相关文章:

php - 在 PHP 中分割 Mysql 列数据

python - 如何使用 SQLAlchemy 和 contains_eager 中关系上定义的 order_by?

python - SQLAlchemy 迁移生成具有不同名称的外键。怎么丢掉这些呢?

python - 如何将字符串列表转换为字符串中各个字符的子列表列表?

python snap7 windows - 找不到 snap7 库

python - 检测用户是否在pygame中按下@登录

mysql - 如何从表中查询数据,其中分钟、天、月和年存储在单独的列中

python - 直接从返回的函数列表扩展列表

php - 类别偏移

python - 在 sqlalchemy 中使用 postgresql xml 数据类型