我需要将一行中的多个字符替换为一行中的另一列。
示例:
+---------+---------+----------+------------------+
| id | name | code | handler |
+---------+---------+----------+------------------+
| 1 | ben | 1,2 | 41 and 67 |
| 2 | ken | 43,2,3 | (1 or 2) and 3 |
| 3 | ana | 12,67 | 13 or 12 |
+---------+---------+----------+------------------+
我的数据库中有这些数据。我想根据handler
列修改我的code
。在包含id = 1
的示例中:我需要1
来替换41
; 2
替换67
;等等。
这应该是预期的结果:
+---------+---------+----------+------------------+
| id | name | code | handler |
+---------+---------+----------+------------------+
| 1 | ben | 1,2 | 1 and 2 |
| 2 | ken | 43,2,31 | (43 or 2) and 31 |
| 3 | ana | 12,67 | 12 or 67 |
+---------+---------+----------+------------------+
目前我只能替换单个实例,例如sql replace()
:
REPLACE(handler, handler, code)
答案 0 :(得分:0)
您可以像这样尝试嵌套REPLACE
REPLACE (REPLACE(column_name, old_value, new_value), old_value, new_value)
要找出需要替换的字符的位置,您可以使用CHARINDEX
或CHARINDEX
和SUBSTRING
的组合