mysql - SQL - 对数字使用嵌套替换
问题描述
我有一个包含一组数字的列的数据库。每个数字都是它自己的值,我想用新值替换数字。
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() 多次,如下所示。通过分 2 个阶段执行此操作,您可以制作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 - 在mysql查询中重新输入别名列
- php - 如何在 Voyager 中编辑/添加数据到 HasOne 关系字段?
- c# - 在 DomainUpDown 控件中阻止粘贴事件
- python - 如何通过单击网页按钮从文件夹中删除或下载所需的文档?
- javascript - 递归子集和 - 我做错了什么?
- java - 如何打破循环?
- javascript - How to find out was the scrolling performed manually or triggered by method?
- php - Registration with restricted email domain, PHP validation
- javascript - Regex Pattern for Matching Single Lines of Text/Chars
- python - 每次调用父函数时,如何从排序字典中调用函数?