用于删除字符串部分的SQL语句

Cam*_*ron 12 mysql sql

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

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

我有一个搜索,但我找不到我需要的东西.我假设我需要使用REPLACE和UPDATE,但我很挣扎.

到目前为止,我有:

UPDATE list
SET    website
WHERE  website LIKE 'http://%';
Run Code Online (Sandbox Code Playgroud)

那是对的吗?我使用MySQL和表是列表,列的网站,我想删除http://因此喜欢的网址:http://website.com/就像变成:website.com

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

Jer*_*ins 30

看看这个REPLACE功能.您需要使用它两次才能删除http和https.

UPDATE    list
SET       website = REPLACE(REPLACE(website, 'https://', ''), 'http://', '')
WHERE     website like 'https://%' 
  OR      website like 'http://%'
Run Code Online (Sandbox Code Playgroud)

为了处理尾随斜线,您可以使用RIGHT,LEFTLENGTH功能.

UPDATE    list
SET       website = LEFT(website, LENGTH(website) - 1)
WHERE     RIGHT(website, 1) = '/'
Run Code Online (Sandbox Code Playgroud)

以下是一些您可能会觉得有用的文档: MySQL字符串函数


Bri*_*dge 9

为什么不直接替换字符串:

UPDATE list
SET    website = Replace(website, 'http://', '')
Run Code Online (Sandbox Code Playgroud)


She*_*lal 6

update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, \xe2\x80\x98find this string\xe2\x80\x99, \xe2\x80\x98replace found string with this string\xe2\x80\x99) where CONDITION\n
Run Code Online (Sandbox Code Playgroud)\n