20

可能重复:
SQL UPDATE 中的 str_replace?
如何在mysql中删除部分字符串?
SQL查找和替换字符串的一部分

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

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

到目前为止,我有:

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

那是对的吗?我正在使用 MySQL,表是列表,列是网站,我想删除http://这样的 url,例如:http://website.com/变成:website.com

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

4

3 回答 3

43

看看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 字符串函数

于 2012-08-19T21:31:49.100 回答
14

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

UPDATE list
SET    website = Replace(website, 'http://', '')
于 2012-08-19T21:28:17.453 回答
5
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’) where CONDITION
于 2012-08-19T21:29:11.810 回答