0

使用 MySQLAdmin。从 Windows 服务器移动数据并尝试替换 url 中的大小写但未找到匹配项。需要斜杠,因为我不想替换除 urls 之外的任何文本(在 post 表中)。我认为 %20 是什么问题?

UPDATE table_name SET field = replace(field, '/user%20name/', '/User%20Name/')

实际的字符串更像:

https://www.example.com/forum/uploads/user%20name/GFCI%20Stds%20Rev%202006%20.pdf
4

3 回答 3

0

在您使用 MariaDB 的情况下,您有 REGEXP_REPLACE() 函数。

但最好的方法是将表转储到文件中。在记事本++中打开它

并像在图片上指定的那样运行正则表达式替换:模式是:(https:[\/\w\s\.]+uploads/)(\w+)\%20(\w+)((\/.*)+) 替换为:$1\u$2\%20\u$3$4

在此处输入图像描述

然后再次导入表希望这有帮助

于 2017-05-01T15:46:14.420 回答
0

如果是 MariaDB,您可以执行以下操作:

UPDATE table_name SET field = REGEXP_REPLACE(field, '\/user%20name\/', '\/User%20Name\/');
于 2017-05-01T15:56:20.710 回答
0

首先,请检查数据库中实际存储的内容:%20是一个代表空格的html实体。通常,当您将其存储在数据库中时,它将表示为实际的空格(在存储之前转换)->因此您的替换与实际数据不匹配。

可能的第二个选项-取决于您要执行的操作:您看到的 URL 包含%20,因此您使用该附加项创建了数据库记录(您想获取)%20-当您现在尝试查询结果时根据实际 url,将%20替换为“实际”空格(在您的查询之前),因此它与您存储的数据不匹配。

于 2017-05-01T16:22:53.667 回答