首页 > 解决方案 > 用 '\/' 替换反斜杠 '\\' 的 sql 查询

问题描述

我对 sql 查询知之甚少,但我需要一个查询来'\\'替换'\/'

我有一个 Wordpress 数据库,其中有一个长文本字符串中的字符,在 phpMyAdmin Browse 中看起来像这样。

'\\上传\\照片\\'

它需要是 '\/uploads/photos\/'。我想要一个查询来查找“\\uploads\\photos\\”,这样我就可以确保查询正常工作。

我还希望另一个查询将 '\\uploads\\photos\\' 永久替换为 '\/uploads\/photos\/'。

下面的查询photos返回结果,但这是我得到的。

SELECT * 
FROM `mytable`
WHERE `mycolumn` LIKE '%photos%'

感谢您提供出色的解决方案!

对于未来的读者:
当我从本地在线迁移我的 wordpress 数据库时,多合一迁移插件错过了我正在使用的 Wonderplugin 库中的路径。因此我对查询的要求。

这个双反斜杠 \ 文本是一个长字符串,我担心有更多的双反斜杠可能会被更改。所以加上forpas提供的解决方案,我更准确地定位了路径文本。mytable 实际上被命名为 wp_nonxenon_wonderplugin_gridgallery,而 mycolumn 被命名为 data。这是结果查询,它将在未来为我节省很多工作。

更新 wp_nonxenon_wonderplugin_gridgallery SET data = REPLACE(data, 'wp-content\\uploads\\photos\\', 'wp-content\/uploads\/photos\/') WHERE data LIKE '%photos%';

标签: mysqlsqlbackslash

解决方案


您必须使用双反斜杠转义每个反斜杠:

SELECT REPLACE(mycolumn, '\\\\', '\\/') 
FROM mytable
WHERE mycolumn LIKE '%photos%';

或者您可以更新表格:

UPDATE mytable
SET mycolumn = REPLACE(mycolumn, '\\\\', '\\/')
WHERE mycolumn LIKE '%photos%';

并且该列将包含您想要的值。

请参阅演示


推荐阅读