sqlalchemy 过滤多列 [英] sqlalchemy filter multiple columns

查看:29
本文介绍了sqlalchemy 过滤多列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何组合两列并应用过滤器?例如,我想同时在firstname"和lastname"列中进行搜索.如果只搜索一列,我是这样做的:

How do I combine two columns and apply filter? For example, I want to search in both the "firstname" and "lastname" columns at the same time. Here is how I have been doing it if searching only one column:

query = meta.Session.query(User).filter(User.firstname.like(searchVar))

推荐答案

有多种方法可以做到:

使用filter()(运算符)

query = meta.Session.query(User).filter(
    User.firstname.like(search_var1),
    User.lastname.like(search_var2)
    )

使用filter_by()(运算符)

query = meta.Session.query(User).filter_by(
    firstname.like(search_var1),
    lastname.like(search_var2)
    )

链接 filter()filter_by()(and 运算符)

Chaining filter() or filter_by() (and operator)

query = meta.Session.query(User).
    filter_by(firstname.like(search_var1)).
    filter_by(lastname.like(search_var2))

使用or_()and_()not()

from sqlalchemy import and_, or_, not_

query = meta.Session.query(User).filter(
    and_(
        User.firstname.like(search_var1),
        User.lastname.like(search_var2)
    )
)

这篇关于sqlalchemy 过滤多列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆