是否可以REPLACE
MySQL中的字符串+下一个字符?像LIKE
下划线那样。
例如,如果text
列是这样的:
12 13 14 14_B 15 14_A
,REPLACE
所有14_*
字符为空,替换后的文字应为:
12 13 14 15
答案 0 :(得分:3)
您将在MySQL中使用正则表达式UDF来实现此目的。关键成分是
如果你 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次替换,但您可以轻松扩展模式。仅包括最外层查询中所需的基表中的列。