Mysql 查找和替换SQL中的SQL语法错误

Mysql 查找和替换SQL中的SQL语法错误,mysql,Mysql,好的,这个问题我知道已经回答过很多次了,在我的特殊情况下,一定发生了一些奇怪的事情。我设置了一个表,其中有一个标题、文件名和Id列 我需要用images/images/替换filename列中\myimages\PICS\的每个实例。出于某种原因 下面的代码是我上一次尝试的代码,没有运气。它不断地向我抛出附加的屏幕截图。如果您对此有任何指示,我们将不胜感激。提前感谢 UPDATE ez_images SET FILENAME = REPLACE(FILENAME, 'C:\myimages\PI

好的,这个问题我知道已经回答过很多次了,在我的特殊情况下,一定发生了一些奇怪的事情。我设置了一个表,其中有一个标题、文件名和Id列

我需要用images/images/替换filename列中\myimages\PICS\的每个实例。出于某种原因

下面的代码是我上一次尝试的代码,没有运气。它不断地向我抛出附加的屏幕截图。如果您对此有任何指示,我们将不胜感激。提前感谢

UPDATE ez_images
SET FILENAME = REPLACE(FILENAME, 'C:\myimages\PICS\', 'images/images/')
;
你应该用这个

 UPDATE  ez_images
 SET filename  = REPLACE(FILENAME, 'C:\myimages\PICS\\', 'images/images/')
 WHERE filename LIKE '%C:\myimages\PICS\\%';
你应该用这个

 UPDATE  ez_images
 SET filename  = REPLACE(FILENAME, 'C:\myimages\PICS\\', 'images/images/')
 WHERE filename LIKE '%C:\myimages\PICS\\%';

\
是MySQL中的转义字符,请参阅。在您的例子中,这意味着第一个字符串的最后一个单引号是字符串的一部分,而不是“C:\myimages\PICS”字符串的结束引号。对于服务器来说,看起来您正在这样做(双引号用于突出显示差异):


这也是为什么stackoverflow代码高亮显示器不能正确高亮显示字符串的原因。

\
是MySQL中的转义字符,请参阅。在您的例子中,这意味着第一个字符串的最后一个单引号是字符串的一部分,而不是“C:\myimages\PICS”字符串的结束引号。对于服务器来说,看起来您正在这样做(双引号用于突出显示差异):


这也是为什么stackoverflow代码高亮显示程序不能正确高亮显示字符串的原因。

在MySQL中,可能需要使用反斜杠来转义“\”,但这并不意味着使用文字反斜杠,它引用下一个字符,以便您(例如)可以在字符串中包含一个
,如
选择“O\Connor”
请显示文件名列的内容示例以及您想要获得的结果。因此,当前在我们的文件名列中,images\PICS\01021510.PDF将是一个常见字段。我需要的是,也许你需要避开“反斜杠”,在MySQL中使用反斜杠并不意味着字面上的反斜杠,它引用下一个字符,以便您(例如)可以在字符串中包含一个
,如
选择“O\Connor”
请显示文件名列的内容示例以及您想要获得的结果。因此,当前在我们的文件名列中,images\PICS\01021510.PDF将是一个常见字段。我需要的是