MySQL - 替换列字符串中的特定字符

标签 mysql

有一个列保存这样的字符串:

{"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/

相关文章:

php - 如何从 MD5 转换为任何其他哈希值?

mysql - 查找不匹配的 ID

php - 迁移时出错, "Syntax error or access violation:1064"

mysql - 将 MySQL 与子查询链接起来进行删除

php - 如何在mysql中返回数组作为列的值

mysql - 我无法从具有外部连接的 View 进行更新

mysql - MySQL 中的 CHECK 约束不起作用

mysql - 使用 mysql_query 将两个表添加到一个数组中

php - 在站点之间切换时保存表单数据

php - MySQL 1064 更改表错误