基于不同数据类型关联表更新SQL表的实现方案问询(附实例)
可以直接用SQL实现,无需借助编程语言
你可以通过关联两张表+条件映射的SQL语句直接完成更新,不需要额外编写代码。以下是主流数据库通用的实现方案:
以MySQL为例,执行这条UPDATE语句即可:
UPDATE adopt a JOIN `order` o ON a.orderId = o.orderId SET a.type = CASE o.type WHEN 'pig' THEN 1 WHEN 'cat' THEN 2 ELSE a.type -- 若存在未匹配的type值,保留原数据(可选) END;
逻辑说明:
- 通过
orderId关联adopt表和order表,确保更新的是对应订单的记录 - 用
CASE WHEN把order表的字符串类型type映射为对应数字:pig对应1,cat对应2 - 执行后,
adopt表第三行的type会从0更新为2,完全满足需求
如果是PostgreSQL、Oracle等其他数据库,语法会有细微调整,但核心逻辑一致——都是通过表关联+值映射完成批量更新。
内容的提问来源于stack exchange,提问作者AutumnZeng
相关产品推荐
相关产品推荐

