q_1 = Table.query.filter(Table.status==True, or_(Table.user_id == user_2.id, Table.size>10)) q_2 = Table.query.filter(Table.date > date, or_(Table.user_id == user_1.id, Table.size<8))
两个不同的 query 返回的是满足不同条件的样的 table objects ,能不能合并成一个 query ,可能加 pagination 。 试了 union 和 or_都不行。
![]() | 1 xyjtou 2017-03-10 08:45:42 +08:00 via Android ![]() |
![]() | 2 mxi1 2017-03-10 09:00:25 +08:00 via iPhone |
![]() | 3 mxi1 2017-03-10 09:02:58 +08:00 via iPhone 抱歉,问题没看全。关于 Table 对象的操作没有做过。 |
![]() | 4 lbfeng OP @xyjtou 之前采用了方法 2 。最近这个问题又出现了。感觉方法二不够好。 ``` query_1 = T1.query.filter(T1.attr_1 == value1, T1.attr_2 == T2.attr, T2.attr == value_2) query_2 = T1.query.filter(T1.attr_1 == value3, T1.attr_3 == T4.attr, T3.attr == value_4) ``` ``` T1.query.filter(_or((T1.attr_1 == value1, T1.attr_2 == T2.attr, T2.attr == value_2), (T1.attr_1 == value3, T1.attr_3 == T4.attr, T3.attr == value_4)) ``` 这样又会出错。 |
![]() | 5 lbfeng OP 好吧,我想多了。 query_1.union(query_2)就可以。 |
6 MrBetterman 2017-04-02 14:54:16 +08:00 我想问一下 sqlalchemy 中怎么加占位符 orm.Rent.query.filter(orm.Rent.title.like('%%s%',q)).all() |
7 MrBetterman 2017-04-02 14:54:50 +08:00 我想问一下 sqlalchemy 中怎么加占位符 orm.Rent.query.filter(orm.Rent.title.like('%%s%',q)).all() 其中 q 是变量,不知道为什么就一直中断 |