[前][次][番号順一覧][スレッド一覧]

mysql:10193

From: "Takashi Yamashita" <"Takashi Yamashita" <takasi@xxxxxxxxxx>>
Date: Fri, 17 Sep 2004 13:31:12 +0900
Subject: [mysql 10193] Re: replace()関数の処理

お世話になっております。

> 「書き換えられた後に再びselectクエリが実行される」ということは
> ありません! ここのselectクエリの対象になるのはreplaceされる
> 前のデータだけです。
> ですから、replace(replace(replace(....)))のような式を記述するとか、
> replace文あるいはupdate文を複数回実行するとか、置き換えをSQL以外で
> 行なうとか、そういった方法になると思います。

分かりました。
私が作成したクエリでは、
再帰的にreplace文を呼び出すような処理にはならないのですね。
というより、再帰的にreplace文を呼び出すようなクエリは、
存在しないということですね。

そうしましたら従来通り、以下のphpコードで置換処理を行うことにします。
=========================================================
$hResult=mysql_query("select field_from, field_to from tbl_rep");
while($row=mysql_fetch_array($hResult)) {
    mysql_query(
        sprintf("update tbl_a set field_n=replace(field_n,'%s','%s')",
            $row[field_from], $row[field_to]);
}
mysql_free_result($hResult);
=========================================================

非常に勉強になりました。
ありがとうございました。>片寄様、宇野様

それからダメもとですが、
recursive_replaceみたいなsqlステートメントがあると、
上記コードがsql一行で書けるので非常に助かると思うのですが、
どうでしょうか?

宜しくお願いします。

-------------------------------------------------------------
山下高司
takasi@xxxxxxxxxx



[前][次][番号順一覧][スレッド一覧]

     10172 2004-09-16 10:19 ["Takashi Yamashita" ] replace()関数の処理                     
     10173 2004-09-16 11:07 ┗["片寄白王" <katayose]                                       
     10174 2004-09-16 11:31  ┗["Takashi Yamashita" ]                                     
     10179 2004-09-16 18:06   ┣["片寄白王" <katayose]                                   
     10180 2004-09-16 19:21   ┗["Takashi Yamashita" ]                                   
     10181 2004-09-16 20:28    ┗[UNO Shintaro <uno@xx]                                 
     10184 2004-09-16 21:53     ┗["Takashi Yamashita" ]                               
     10192 2004-09-17 12:18      ┗[UNO Shintaro <uno@xx]                             
->   10193 2004-09-17 13:31       ┗["Takashi Yamashita" ]