【问题标题】:SQL statement to remove part of a string [duplicate]用于删除部分字符串的 SQL 语句 [重复]
【发布时间】:2012-08-15 08:08:57
【问题描述】:

可能重复:
str_replace in SQL UPDATE?
How to remove part of string in mysql?
SQL Find & Replace part of a string

我有一个包含网站 url 列表的数据库表,例如http://website.com/ 我想从中删除所有 http://https://。它们是我可以在列上运行以删除它的简单 SQL 语句吗?

我已经四处搜索,但找不到我需要的东西。我假设我需要同时使用 REPLACE 和 UPDATE 但我很挣扎。

到目前为止我有:

UPDATE list
SET    website
WHERE  website LIKE 'http://%';

正确吗?我正在使用 MySQL,表是列表,列是网站,我想删除 http:// 所以像:http://website.com/ 这样的 url 变成了:website.com

编辑:是否也可以删除尾部斜杠?

【问题讨论】:

标签: mysql sql


【解决方案1】:

看看REPLACE 函数。您需要使用它两次才能同时删除 http 和 https。

UPDATE    list
SET       website = REPLACE(REPLACE(website, 'https://', ''), 'http://', '')
WHERE     website like 'https://%' 
  OR      website like 'http://%'

要处理尾部斜杠,您可以使用RIGHTLEFTLENGTH 函数。

UPDATE    list
SET       website = LEFT(website, LENGTH(website) - 1)
WHERE     RIGHT(website, 1) = '/'

以下是一些您可能会觉得有用的文档: MySQL string functions

【讨论】:

  • 是否可以使用此方法删除尾部斜杠?
  • 非常好 :) 谢谢大家的帮助
【解决方案2】:
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’) where CONDITION

【讨论】:

    【解决方案3】:

    如果字符串存在,为什么不直接替换它:

    UPDATE list
    SET    website = Replace(website, 'http://', '')
    

    【讨论】:

      猜你喜欢
      • 2013-08-30
      • 2017-12-26
      • 2020-12-22
      • 2017-03-01
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      • 2014-07-24
      相关资源
      最近更新 更多