0

REPLACEMySQLで文字列+次の文字にすることは可能ですか? アンダースコアのようなLIKEもの。

たとえば、textcolumn が this: の場合12 13 14 14_B 15 14_AREPLACEすべて14_*空文字で置き換えられたテキストは次のようになります。 12 13 14 15

4

1 に答える 1

3

MySQL で正規表現 UDF を使用してこれを行うことになります。主な成分は

  1. 正規表現UDF -ここをチェック
  2. 正規表現自体

これらのうち、交換が必要なものが 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つの交換用に仕出し料理しましたが、パターンを簡単に拡張できます. 最も外側のクエリで必要なベース テーブルの列のみを含めます。

于 2012-10-22T20:50:40.050 に答える