0

私の友人は、数日前に彼女のデータベース レコードのいくつかを変更するように私に依頼しましたが、問題は、それがほんの数レコードではなく、約 1000 レコードであることです。手動で行うには十分な時間と神経がありません。ある種の正規表現でそれを変更することは可能ですか?

見やすくするために、データベース テーブルを XML にエクスポートしました。その一部を以下に示します。

 <table name="rozdzialy">
        <column name="nrrozdzialu">1</column>
        <column name="link">http://www.4shared.com/file/97583406/1770dfa5/AAA_vol_1_ch_1_MiA.html</column>
        <column name="link2">AAA/[MiA] AAA vol. 1 ch. 1.zip</column>
        <column name="idtomu">14</column>
    </table>
    <table name="rozdzialy">
        <column name="nrrozdzialu">1</column>
        <column name="link">http://www.4shared.com/file/96401389/bd0b05e2/7th_Period_is_a_Secret_vol_1_ch_1_MiA.html</column>
        <column name="link2">7th Period is a Secret/[MiA] 7th Period is a Secret vol. 1 ch. 1.zip</column>
        <column name="idtomu">17</column>
    </table>

「link1」は古いリンクを持つレコードで、「link2」は新しいリンクの場所です (他のレコードは空です)。「link1」には、新しいリンクを作成するために必要なすべてのデータが含まれています。例: .../file/97583406/1770dfa5/ AAA_vol_1_ch_1 _MiA.html そのアドレスの新しいリンクは次のようになります: "AAA/[MiA] AAA vol. 1 ch. 1.zip

それは可能ですか?

4

1 に答える 1

0

URL全体を置き換えるだけの場合:

UPDATE rozdzialy SET link = link2

または、前の hsot/path を保持したままファイル名の部分を置き換えたい場合は、次のようにします。

UPDATE rozdzialy SET link = CONCAT(
  LEFT(link, CHAR_LENGTH(link) - CHAR_LENGTH(SUBSTRING_INDEX(link, '/', -1))),
  link2
)
于 2012-12-29T15:01:21.190 に答える