我想在mysql表的query列中,用逗号分隔值中的精确匹配来替换特定的数字。例如,值为: 0,40,140,240,340,440 现在我想用50来代替40,结果是: 0,50,140,240,340,440 请注意,该列中的数据类型为“text”。
0,40,140,240,340,440
0,50,140,240,340,440
9q78igpj1#
我同意上面的评论,即这不是存储这些数据的好方法,但我知道有时业务需求要求我们做一些不太理想的事情。因此,本着这种精神,您可以编写sql:在字符串的开头和结尾添加逗号将',40'替换为',50,'删除前导和尾随逗号执行步骤1和步骤3可以让您始终假设所有条目都以逗号开头和结尾,这样您就不会意外地将140更改为150或400更改为500。所以看起来像这样:
SUBSTRING(REPLACE(',' + test + ',', ',40,', ',50,'), 2, LEN(test))
当我在你的字符串上尝试时,结果是“0,501402403440440”。
1条答案
按热度按时间9q78igpj1#
我同意上面的评论,即这不是存储这些数据的好方法,但我知道有时业务需求要求我们做一些不太理想的事情。因此,本着这种精神,您可以编写sql:
在字符串的开头和结尾添加逗号
将',40'替换为',50,'
删除前导和尾随逗号
执行步骤1和步骤3可以让您始终假设所有条目都以逗号开头和结尾,这样您就不会意外地将140更改为150或400更改为500。所以看起来像这样:
当我在你的字符串上尝试时,结果是“0,501402403440440”。