我很难做一些应该非常简单的事情。 我有一些列有这样的数据: 1,2,3,4,5,6
这个数字需要更改为描述,所以我在更新中使用嵌套替换函数:
UPDATE some_table
SET some_column = REPLACE(REPLACE(REPLACE(REPLACE(column_name,
'0', ''),
'1', 'some_desc_1'),
'2', 'some_desc_2'),
'3', 'some_desc_3')
WHERE ID = some_id;
一切都会很棒但是当有更多的数字需要替换时(7,8,9等),事情开始变得怪异,我得到了重复的结果,一些垃圾值(比如数字0)。
我做错了什么?
答案 0 :(得分:0)
我的猜测是,这是一个分隔符问题。因此,10
被替换为1
和0
。最简单的解决方法是按顺序排列。首先输入最大的数字,然后选择最小的数字:
replace(replace( . . . replace(col, '10', 'foo'), '9', 'bar) . . .)
另一个问题可能是描述中包含数字。如果是这种情况,我建议您修改说明。