在数据库中搜索并将"http"替换为"https"

Hen*_*son 14 mysql sql phpmyadmin

使用phpmyadmin,我想运行一个查询,搜索我的整个数据库:

http://example.com
Run Code Online (Sandbox Code Playgroud)

并替换为:

https://example.com
Run Code Online (Sandbox Code Playgroud)

我的SQL知识有限,可能是这样的:

UPDATE ?? = REPLACE(??, 'http://example.com', 'https://example.com');
Run Code Online (Sandbox Code Playgroud)

数据库超过1GB,所以我可以运行什么不会使服务器崩溃.

更新:请注意,虽然此处发布的其他答案涉及搜索和替换,但它们似乎并未覆盖整个数据库.

Ber*_*fen 34

使用REPLACE.如果该字段上有索引,则UPDATE可以使用它们

UPDATE t
     set url = REPLACE(url, 'http:', 'https:')
     WHERE url like 'http:%';
Run Code Online (Sandbox Code Playgroud)

只更改example.com

这只会找到' http://example.com% '的行

UPDATE t
     set url = REPLACE(url, 'http:', 'https:')
     WHERE url like 'http://example.com%';
Run Code Online (Sandbox Code Playgroud)

或者这将找到包含http://的所有行,但只将此http://example.com更改为https://example.com

UPDATE t
     set url = REPLACE(url, 'http://example.com', 'https://example.com')
     WHERE url like 'http:%';
Run Code Online (Sandbox Code Playgroud)

  • 如何使其仅针对“example.com”域?您的代码会影响所有表吗?`UPDATE t` 中的 `t` 代表什么?一些澄清将不胜感激。谢谢! (2认同)

Gor*_*off 2

我会用insert

update t
     set url = insert(url, 5, 0, 's')
     where url like 'http:%';
Run Code Online (Sandbox Code Playgroud)