我有以下查询,它在 p_id 前面加上 p_number
UPDATE table1 t1
SET t1.p_id = CONCAT((SELECT CONCAT(t2.p_number,' ')
FROM tble2 t2
WHERE t2.id = t1.p_id)
, t1.p_id)
WHERE t1.p_id = '19680';
这基本上需要像
t2.p_number:X12
t1.p_id: 19680
并将其变成
t2.p_number:X12
t1.p_id: X12 19680
我被要求的是一个“回滚”脚本,记住我知道的唯一列是“19680”!我查看了 REPLACE 命令,但不确定我是否可以让它工作;有任何想法吗?
解决!
谢谢大家,那里有一个很好的提示日志,我已经找到了 Ben 的一个非常简单的查询。
这个问题背后有相当多的历史,基本上客户已经输入了 p_id 的值并输入了重复项。因此,他们希望在 p_id 上添加 p_number 前缀,以使它们再次唯一(一旦进入客户端就无法更新),但他们也想要一个 get-out 子句,以防出现问题,因此他们希望能够删除前缀数据。
p_id 实际上是在系统中使用的,因此在这种情况下虚拟表和代码更改实际上并不可行,而是为它们更新客户端数据是最简单的。
干杯,希望客户对提案感到满意。