我在维护一个网站,需要将文章中的图片链接删除。具体来说,我希望将所有链接形如"https://adminbk.com/wp-content/uploads/..."的内容替换成其他内容。现在我有一个SQL语句,但它只能替换掉链接中的一部分内容,而我希望能够将链接完全替换掉。

当前使用的SQL语句:
UPDATE wp_posts SET post_content = CONCAT( SUBSTRING_INDEX(post_content, 'https://adminbk.com/wp-content/uploads/', 1), '替换内容', SUBSTRING_INDEX(post_content, 'png', -1) ) WHERE ID = 906832;
我希望能得到一个能够成对替换链接中的内容的SQL语句。
解决方法:
UPDATE 表名 SET 列名 = REPLACE(列名, 'https://adminbk.com/wp-content/uploads/2023/03/15-21/16545646.png', 'https://adminbk.com/*.png') WHERE 列名 LIKE '%https://adminbk.com/wp-content/uploads/2023/03/15-21/16545646.png%'; UPDATE 表名 SET 列名 = REPLACE(列名, 'https://adminbk.com/wp-content/uploads/2023/03/15-21/589898.png', 'https://adminbk.com/*.png') WHERE 列名 LIKE '%https://adminbk.com/wp-content/uploads/2023/03/15-21/589898.png%';
请注意,你需要将示例中的"表名"和"列名"替换为实际的表名和列名。同时,将"https://adminbk.com/*.png"替换为你想要替换的目标URL格式。在执行SQL语句之前,务必备份数据库,以免发生意外导致数据丢失。
完美批量解决方法:
我觉得使用PHP来读取相关数据并进行替换,然后再更新数据。这是一个很好的解决方案!使用PHP来处理和更新数据库中的数据可以提供更灵活的操作。你可以使用PHP的数据库操作函数(如mysqli或PDO)来连接数据库并读取相关数据。然后,使用替换函数(如str_replace或preg_replace)在PHP中对数据进行替换。最后,使用更新操作将修改后的数据重新写回数据库。
下面是一个简单的示例代码,演示了如何使用PHP读取数据、进行替换并更新到数据库:
<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");
// 检查连接是否成功
if (!$conn) {
die("数据库连接失败: " . mysqli_connect_error());
}
// 查询需要替换的数据
$sql = "SELECT id, content FROM articles WHERE content LIKE '%https://xxx.com/wp-content/uploads%'";
$result = mysqli_query($conn, $sql);
// 遍历查询结果
while ($row = mysqli_fetch_assoc($result)) {
$id = $row['id'];
$content = $row['content'];
// 使用替换函数替换链接
$newContent = str_replace('https://xxx.com/wp-content/uploads', 'https://xxx.com/*', $content);
// 更新数据
$updateSql = "UPDATE articles SET content = '$newContent' WHERE id = $id";
mysqli_query($conn, $updateSql);
}
// 关闭数据库连接
mysqli_close($conn);
?>请确保将示例中的数据库连接信息替换为实际的值,以及将表名和列名替换为实际使用的数据库表和列名。这段代码将遍历数据库中的文章内容,使用str_replace函数将链接进行替换,然后将替换后的内容更新回数据库。你可以把这个当做是一个工具,可以以后继续使用!








