nic*_*.xu 5 python sql mixed sqlalchemy parentheses
我需要执行以下查询:
SELECT *
FROM tbl_member
WHERE (member_type==1 AND member_status==1)
OR (member_type==2 and member_status==2)
Run Code Online (Sandbox Code Playgroud)
我试过了:
q=session.query(tbl_member) \
.filter(or_(and_(tbl_member.member_type==1,tbl_member.member_status==1), \
and_(tbl_member.member_type==2,tbl_member.member_status==2)))
Run Code Online (Sandbox Code Playgroud)
和
q=session.query(tbl_member) \
.filter(or_((and_(tbl_member.member_type==1,tbl_member.member_status==1)), \
(and_(tbl_member.member_type==2,tbl_member.member_status==2))))
Run Code Online (Sandbox Code Playgroud)
查询sql仍然是这样的:
SELECT *
FROM tbl_member
WHERE member_type==1 AND member_status==1 OR member_type==2 AND member_status==2
Run Code Online (Sandbox Code Playgroud)
我应该怎么做?
该查询在语义上是相同的,因为AND优先于OR,因此
WHERE Cond1 AND Cond2 OR Cond3 AND Cond4将产生与相同的结果
WHERE (Cond1 AND Cond2) OR (Cond3 AND Cond4)。
是你尝试其他方式(开关or_和and_你的代码),你会发现,sqlalchemy确实产生括号。
| 归档时间: |
|
| 查看次数: |
3562 次 |
| 最近记录: |