有一个列保存这样的字符串:
{"plan-36";"id-36";}
我想检查此列的每个字符串,如果符合我的条件,它将更改此字符串的特定字符(例如将数字 36
更改为 99
).这是我到目前为止得到的:
SELECT string_column
FROM example_table
WHERE
INSTR(string_column,'plan-36') > 0
OR
INSTR(string_column,'id-36') > 0
这只会返回其中包含“plan-36”或“id-36”字符串的行。我需要的是 - 如果此行包含此类字符串,我需要更改 36
值,比方说 99
。
为此我需要哪些 sql 函数?
最佳答案
UPDATE example_table
SET string_column = REPLACE(string_column, "36", "99")
WHERE
INSTR(string_column,'plan-36') > 0
OR
INSTR(string_column,'id-36') > 0
将是语法,这会将 36 的所有实例更新为 99,请小心并先在备份数据上进行测试。
用这个可能会更好
SET string_column = REPLACE(string_column, "-36", "-99")
其中包括破折号
关于MySQL - 替换列字符串中的特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18482553/