2011-06-09 6 views
0

以下は私のmysqlデータベース内の列のデータの数行がMySQLはランダムな文字列がある

データのすべての行で

test(victoryyyyy)king 

java(vaaaarrrryy)side 

(vkittt)sap 

flex(vuuuuu) 

k(vhhhhyyy)kk(abcd)k 

ある文字列内の括弧内の正規表現これまで何を置き換えること

(v

で始まり、

で終わります
) 

マイタスク: - 私は(つまり '「)私は上記で、中括弧で他の値には触れてはならない空きスペースに「(V」への「)」からすべての文字列を置換する必要があります私は結果が

test king 

java side 

sap 

flex 

kkk(abcd)k 

である必要があり、上記の例のために意味の最後の行に

を(ABCD)を置き換えるべきではない場合には、いずれかが私を助けてくださいもらえますか?

はあなた

よろしく

キラン

答えて

1

MySQLはタスクを交換するための正規表現をサポートしていませんありがとうございました。

文字列関数を使用すると、必要な部分のみを検索して置換することができます。

+0

迅速な対応のために@zerkmsさんに感謝します。私はhttps://launchpad.net/mysql-udf-regexpで確認しています。助けてくれるものがあるかもしれません... – Bujji

+0

@Buji:うん、そのパッケージをコンパイルしてサーバーにプラグインする限り、UDFが助けになるかもしれません。 – zerkms

+0

お返事ありがとうございます。私は自分の問題のために私自身の関数を書いており、うまくいきます。 – Bujji

0

私は自分自身のためにこの機能を書いており、動作しています。みんな、ありがとう 。

drop FUNCTION replace_v; 

CREATE FUNCTION replace_v (village varchar(100)) RETURNS varchar(100) 
DETERMINISTIC 

    BEGIN 
     DECLARE a INT Default 0 ; 
     DECLARE lengthofstring INT Default 0 ; 
     DECLARE returnString varchar(100) Default '' ; 
     DECLARE charString varchar(100) Default '' ; 
     DECLARE found  char(1) default 'N'; 
     declare seccharString varchar(100) Default '' ; 
     set lengthofstring = length(village); 

    simple_loop: LOOP 
     SET a=a+1; 
     set charString=substr(village,a,1); 
     if(charString = '(') then 
      set seccharString=substr(village,a+1,1); 
      if(seccharString = 'v' || seccharString = 'V' || seccharString = 'p' || seccharString = 'P' 
      || seccharString = 'm' || seccharString = 'M') then 
       set found='y'; 
      end if; 
      end if ;  

      if(found='n') then 
      set returnString = concat (returnString,charString); 
      end if; 

     if(charString = ')') then 
      set found='n'; 
      end if ;    

      IF a>=lengthofstring THEN 
       LEAVE simple_loop; 
      END IF; 
     END LOOP simple_loop; 

     if (found = 'y') then 
     set returnString =village; 
     end if; 

     RETURN (replace(returnString,'&', ' ')); 
END 
関連する問題