Mysql 用于更改数据库中记录的正则表达式

Mysql 用于更改数据库中记录的正则表达式,mysql,regex,database,Mysql,Regex,Database,我的朋友几天前要求我更改她的几条数据库记录,但问题是,这不仅仅是几条记录,而是大约1000条记录,我没有足够的时间和精力手动进行更改。可以用某种正则表达式来更改它吗 为了更好地查看,我将数据库表导出为XML,下面是它的片段: <table name="rozdzialy"> <column name="nrrozdzialu">1</column> <column name="link">http://www.4s

我的朋友几天前要求我更改她的几条数据库记录,但问题是,这不仅仅是几条记录,而是大约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>

1.
http://www.4shared.com/file/97583406/1770dfa5/AAA_vol_1_ch_1_MiA.html
AAA/[MiA]AAA第1卷第1章邮编
14
1.
http://www.4shared.com/file/96401389/bd0b05e2/7th_Period_is_a_Secret_vol_1_ch_1_MiA.html
第七节是秘密第七节是秘密第1卷第1章
十七,
“link1”是一个带有旧链接的记录,“link2”是新链接的位置(其他记录为空)。 “link1”包含创建新链接所需的所有数据。例如: …/file/97583406/1770dfa5/AAA_vol_1_chu 1\u MiA.html 该地址的新链接如下:“AAA/[MiA]AAA vol.1 ch.1.zip


如果您只想替换整个URL,则可以执行此操作:

UPDATE rozdzialy SET link = link2
或者,如果要替换文件名部分,同时保留前面的hsot/路径:

UPDATE rozdzialy SET link = CONCAT(
  LEFT(link, CHAR_LENGTH(link) - CHAR_LENGTH(SUBSTRING_INDEX(link, '/', -1))),
  link2
)

好了,mysql中没有简单的regexreplace方法。也许你可以在这里找到一些解决方案:(特别是这里:)