mysql替换字符串+下一个字符

时间:2012-10-22 20:33:49

标签: mysql sql replace

是否可以REPLACE MySQL中的字符串+下一个字符?像LIKE下划线那样。

例如,如果text列是这样的: 12 13 14 14_B 15 14_AREPLACE所有14_*字符为空,替换后的文字应为: 12 13 14 15

1 个答案:

答案 0 :(得分:3)

您将在MySQL中使用正则表达式UDF来实现此目的。关键成分是

  1. 正则表达式UDF - check here
  2. 正则表达式本身
  3. 如果你 ONLY 曾经看到过你需要更换的2到4个,那么一个穷人的工作方法(SQL Fiddle):

    SELECT *,IF(LOCATE('14_',B)+3<=Length(B),
             INSERT(B,LOCATE('14_',B),4,''),B) C
    FROM
    (
      SELECT *,IF(LOCATE('14_',A)+3<=Length(A),
               INSERT(A,LOCATE('14_',A),4,''),A) B
      FROM (
        SELECT *,IF(LOCATE('14_',x)+3<=Length(X),
                 INSERT(X,LOCATE('14_',x),4,''),X) A
        FROM X
      ) Q1
    ) Q2
    

    我只提供3次替换,但您可以轻松扩展模式。仅包括最外层查询中所需的基表中的列。