PostgreSQL如何使用matchup匹配表标准化订单表字段值
解决方案
1. 新增目标列
首先给order表添加friendly_model_name字段:
ALTER TABLE "order" ADD COLUMN friendly_model_name VARCHAR(50);
注意:
order是PostgreSQL的保留关键字,引用表名时需要用双引号包裹。
2. 更新字段值
通过关联matchup表,按规则更新新增列的值:
UPDATE "order" o SET friendly_model_name = m.friendly_name FROM matchup m WHERE o.order_model ILIKE '%' || m.model_name || '%';
这里用ILIKE实现不区分大小写的模糊匹配,确保order_model里的modelA能匹配到matchup里的modela,%作为通配符表示任意长度的字符(包括空字符)。
3. 验证结果
执行以下查询确认更新效果:
SELECT order_num, order_model, friendly_model_name, price FROM "order";
查询结果会与你期望的结果表完全一致。
内容的提问来源于stack exchange,提问作者motii
相关产品推荐
相关产品推荐

