【问题标题】:Update a column value, replacing part of a string更新列值,替换字符串的一部分
【发布时间】:2012-04-27 23:09:29
【问题描述】:

我在 MySQL 数据库中有一个包含以下列的表

[id, url]

网址如下:

 http://domain1.com/images/img1.jpg

我想将所有 url 更新到另一个域

 http://domain2.com/otherfolder/img1.jpg

保持文件名不变。

我必须运行什么查询?

【问题讨论】:

标签: mysql sql


【解决方案1】:
UPDATE urls
SET url = REPLACE(url, 'domain1.com/images/', 'domain2.com/otherfolder/')

【讨论】:

  • 从未想过这是可能的!谢谢!
  • 观看 CaSiNg(问我怎么知道的!)。 :)
  • 这节省了几个小时,谢谢
  • 你是英雄
  • 当 MySQL 可以开箱即用地执行此类操作时,您无需通过服务器端语言对其进行管理,这真是太棒了)
【解决方案2】:
UPDATE yourtable
SET url = REPLACE(url, 'http://domain1.com/images/', 'http://domain2.com/otherfolder/')
WHERE url LIKE ('http://domain1.com/images/%');

相关文档:http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace

【讨论】:

  • 嗨,我为什么需要 where ?
  • @GuyCohen 因为否则查询将修改表中的每一行。 WHERE 子句优化查询以仅修改具有特定 URL 的行。从逻辑上讲,结果会是一样的,但是加上WHERE会使得操作更快。
  • WHERE 还确保您只替换 beginhttp://etc/etc/string_to_be_replaced. 的部分字符串例如,在给定的答案中,@987654328 @ 会受到影响,但foobar/http://domain1.com/images/ 不会。
【解决方案3】:

尝试使用REPLACE function

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'

注意区分大小写。

【讨论】:

【解决方案4】:

试试这个...

update [table_name] set [field_name] = 
replace([field_name],'[string_to_find]','[string_to_replace]');

【讨论】:

    【解决方案5】:

    您需要 WHERE 子句替换 ONLY 符合 WHERE 子句中条件的记录(而不是所有记录)。您使用 % 符号表示部分字符串:I.E.

    LIKE ('...//domain1.com/images/%');
    

    表示所有BEGIN"...//domain1.com/images/" 并在之后有任何内容的记录(即% for...)

    另一个例子:

    LIKE ('%http://domain1.com/images/%')
    

    表示所有包含"http://domain1.com/images/"的记录

    在字符串的任何部分...

    【讨论】:

      【解决方案6】:

      首先,必须检查

      SELECT * FROM university WHERE course_name LIKE '%&amp%'

      接下来,要更新了

      更新大学 SET course_name = REPLACE(course_name, '&amp', '&') WHERE id = 1

      结果:工程与技术 => 工程与技术

      【讨论】:

        猜你喜欢
        • 2013-06-26
        • 2015-09-18
        • 2020-10-02
        • 2019-08-08
        • 2022-11-25
        • 2022-07-18
        • 2020-11-03
        • 2020-11-09
        相关资源
        最近更新 更多