mysql - 通过添加到字符串中间来更新 mysql 中的列?

标签 mysql sql-update

我目前有一个列 (control_reference) 设置为 varchar(120),其数据类似于 15591_8571。此列中的数据更改第一个数字,但第二个数字始终相同。我想在其中添加一些内容,以便 varchar 最终看起来像这样。请记住,我有数百个这样的东西,所以我想找到一种方法来改变它们。

control_reference 中的当前值

  • 15591_8571
  • 16772_8571
  • 20541_8571

control_reference 中的新值

  • 15591_I18n_8571
  • 16772_I18n_8571
  • 20541_I18n_8571

我知道我可以使用简单的 UPDATE 'database.table' SET 'control_reference'='15591_I18n_8571' WHERE'id'='some_number'; 但我还有很多事情要做。

最佳答案

如果需要更新表中的所有行,请尝试:

UPDATE database.table SET control_reference=REPLACE(control_reference, '_', '_I18n_')

要将更新限制为与该模式匹配的行,请添加如下内容:

WHERE control_reference REGEXP '[[:digit:]]+_[[:digit:]]+'

关于mysql - 通过添加到字符串中间来更新 mysql 中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26122291/

相关文章:

sql - 使用内连接更新记录

mysql - 仅当另一行具有特定值时才更新多列

mysql - 如何使用触发器将列值更新为旧值加上其他表中的新值?

php - 更新 ajax 表单提交上的 mysqli 查询

php - 使用 yii 保存多条交易记录 :not using loop

php - 以小时和分钟计算两个日期之间的差异

sql-server - SQL Server 更新行,如 '%#186;%'

sql-update - Liquibase - 如何跳过已执行的变更集

mysql - 插入数据库

c++ - 带有 vsprintf (C++) 的查询助手的 MySQL 动态字符串大小