sqlalchemy中的self_group()返回的只是其本身,如:
q = db.session.query(
my_model
).filter(
or_(
my_model.name == "abc", # 条件一
and_(
my_model.name != "abc",
my_model.id == 123,
).self_group(), # 条件二
)
)
此处的self_group()是给条件二(and_())加了一个括号。确保优先级不会混乱
相当于
or_(
条件一,
(条件二)
)
sql语句:
select *
from my_model
where my_model.name = ‘abc’ or
(my_model.name != ‘abc’ and my_model.id = 123)