我有一个数据库,其中有一列包含一组数字。每个数字都有自己的值,我想用新值替换该数字。
Current Value New Value
1 5
2 3
3 2
4 1
any other 0
上面应该执行下面的例子
Input output
1142 5513
6741 0005
0613 0052
我考虑过使用下面的嵌套替换,但是如果原始值是 3 那么它会按照上面的图表更改为 2。然后它将再次替换为 2!
REPLACE(REPLACE(REPLACE(REPLACE(form,'1','5'),'2','3'),'3','2'),'4','1')
有人知道我该如何实现吗?
最佳答案
要在单个查询中完成您的特定问题,您确实可以嵌套 REPLACE() 多次,如下所示。通过分两个阶段进行,您可以使 modified 2
成为唯一字符,这样您就知道需要将哪个更改为 3。
SELECT
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(Input, '1','E')
,'2','C')
,'3','B')
,'4','A')
, '5','0')
, '6','0')
, '7','0')
, '8','0')
, '9','0')
, 'A','1')
, 'B','2')
, 'C','3')
, 'E','5')
from NummerTest
关于mysql - SQL - 在数字上使用嵌套替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52419982/