0

我的表中有一个列,我们称之为列。该列中的值可以是数字,例如100036077,也可以是数字后跟名称,例如35921 John Doe

我想用任何内容替换名称,并将 1000 添加到我选择的该名称前面的 5 个数字(35921 John Doe --> 100035921)。在不使用任何其他库的情况下如何做到这一点?MySQL 没有本地正则表达式替换,对吧?

谢谢!

4

2 回答 2

2

这里的策略是:

  1. 获取从字符串开头到第一个空格的子字符串(这是数字部分和文本部分之间的限制)
  2. 将字符串“1000”添加到结果为 1 的字符串中。
  3. 用 2 产生的字符串替换当前值。
UPDATE thetable SET thecolumn =
    CONCAT('1000', SUBSTRING_INDEX(thecolumn, ' ', 1));
于 2013-05-14T08:38:17.620 回答
2

这有点容易......还是我错过了什么?

SELECT CONCAT('1000',SUBSTRING_INDEX('35921 John Doe',' ',1))x;
+-----------+
| x         |
+-----------+
| 100035921 |
+-----------+
于 2013-05-14T08:38:59.293 回答