【问题标题】:Is there a possible way to modify something same in mysql? [duplicate]有没有可能在mysql中修改相同的东西? [复制]
【发布时间】:2016-10-23 10:56:29
【问题描述】:

我在一列中的每条记录都有这些值:

http://192.168.106.82/bookclub/uploads/booktype/01_type_education.png
http://192.168.106.82/bookclub/uploads/booktype/02_type_religion.png
http://192.168.106.82/bookclub/uploads/booktype/03_type_technology.png
http://192.168.106.82/bookclub/uploads/booktype/04_type_business.png
http://192.168.106.82/bookclub/uploads/booktype/05_type_healthy.png
http://192.168.106.82/bookclub/uploads/booktype/06_type_magazine.png
http://192.168.106.82/bookclub/uploads/booktype/07_type_literature.png

然后我想将IP地址192.168.106.82修改为其他如192.168.1.39 我可以一次修改所有这些吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你可以用更新来做

    UPDATE your_table
    SET your_field = REPLACE(your_field, '192.168.106.82', ' 192.168.1.39')
    WHERE your_field LIKE '%192.168.106.82%'
    

    【讨论】:

    • 如果 your_field 被索引,他们可能会更好 LIKE 'http://192.168.106.82%'
    • @Uueerdo .. 可能是 .. .. 但问题基本上是相同的 .. 还有其他方式 .. 与 like 没有关系的方式 ... 可以使用子字符串 .. 或其他方式..我的建议清晰且立即可用
    • 是的,不是批评什么的,只是想把它添加为旁注。
    • @Uueerdo .. 是的,你的建议是合理的 .. 我同意 ..
    • 我试过这个语句:UPDATE books SET imageurl = REPLACE(imageurl, '192.168.106.82', '192.168.1.39') WHERE imageurl LIKE '%192.168.106.82%' 但是我发现了一些错误, i.imgur.com/hi8wVxv.jpg 找到了一个新语句,但它与前一个语句之间没有分隔符。 (靠近 REPLACE)
    【解决方案2】:

    您可以在 UPDATE 的 SET 子句中使用函数,如下所示:

    UPDATE table 
    SET field = REPLACE(field, 'old value', 'new value')
    WHERE condition
    

    要更新整个表,您可以完全关闭 WHERE 子句,或者设置一个不能为假的条件(某些服务器配置会阻止 WHEREless 更新)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多