SQLAlchemy如何将两条条件更新语句合并为一条?
合并SQLAlchemy UPDATE语句实现分支赋值
当然可以把两条UPDATE语句合并成一条,核心是利用SQL的CASE WHEN表达式实现分支逻辑,这样只需要一次数据库执行操作。
修改后的代码示例
from sqlalchemy import case # 构建单条UPDATE语句,用CASE分支处理不同赋值逻辑 update_stmt = update(table).values( column_2=case( [(table.c.column_1 == "ABC", table.c.column_3)], else_=table.c.column_3 * table.c.column_4 ) ) # 仅需执行一次 db.execute(update_stmt)
逻辑说明
- 当
column_1等于"ABC"时,column_2直接赋值为column_3的值 - 当
column_1不等于"ABC"时,column_2赋值为column_3与column_4的乘积 - 这条语句的功能和你原来两条UPDATE语句完全一致,但减少了一次数据库交互,提升效率
内容的提问来源于stack exchange,提问作者Stamatis Tiniakos
相关产品推荐
相关产品推荐

