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 回答