替换MySQL查询中的文本?

时间:2013-05-14 08:29:50

标签: mysql replace

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

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

谢谢!

2 个答案:

答案 0 :(得分:2)

这里的策略是:

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

答案 1 :(得分:2)

这有点容易......或者我错过了什么?

SELECT CONCAT('1000',SUBSTRING_INDEX('35921 John Doe',' ',1))x;
+-----------+
| x         |
+-----------+
| 100035921 |
+-----------+