Mysql replace()函数,查询帮助(我应该转义什么字符?)
我正在尝试更新一个旧的cms,其中图像存储在/images/editor/中,它们现在存储在AmazonS3的一个存储桶中。我正在尝试使用mysql replace更新数据库。我以前用替换简单单词的方法来实现这一点,但现在Mysql报告了一个错误,我怀疑这不仅仅是一个简单的单词:Mysql replace()函数,查询帮助(我应该转义什么字符?),mysql,sql,replace,mysql-error-1064,Mysql,Sql,Replace,Mysql Error 1064,我正在尝试更新一个旧的cms,其中图像存储在/images/editor/中,它们现在存储在AmazonS3的一个存储桶中。我正在尝试使用mysql replace更新数据库。我以前用替换简单单词的方法来实现这一点,但现在Mysql报告了一个错误,我怀疑这不仅仅是一个简单的单词: UPDATE contents SET desc = replace(desc, '/images/editor/', 'http://s3.amazonaws.com/my_bucket/editor/') 我
UPDATE contents SET desc = replace(desc,
'/images/editor/',
'http://s3.amazonaws.com/my_bucket/editor/')
我需要避开:还是斜线?我试着用一个“\”来逃避它,但没有用。有人能给我指出正确的方向吗?谢谢
编辑
这是我得到的错误,没有什么太明显的
错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在“desc=replace(desc,/images/editor,”,附近使用的正确语法http://s3.amazonaws.com/app_navigator/ed“在1号线
与逃逸无关(即无需逃逸),
但是您需要引用保留关键字
desc
所以
与逃逸无关(即无需逃逸),
但是您需要引用保留关键字
desc
所以
desc
不是保留字吗?顺便说一句,select replace('my/images/editor/gamma','/images/editor/','http://s3.amazonaws.com/my_bucket/editor/);
有效。您确定选择计数(*)从“%/images/editor/%”等描述返回非零值的内容中?+1它是保留字而不是desc
保留字?顺便说一句,select replace('my/images/editor/gamma','/images/editor/','http://s3.amazonaws.com/my_bucket/editor/);
有效。您确定选择计数(*)从“%/images/editor/%”
等描述返回非零值的内容?+1这是一个保留字啊!我没有意识到这是一个保留字。当使用单引号时,我仍然会遇到相同的错误。不过,该查询在另一列上确实有效。@jyoseph-使用back tick“`”,或ANSI双引号(大多数人使用back tick)啊!我没有意识到这是一个保留字。当使用单引号时,我仍然会遇到同样的错误。不过,查询在另一列上也能工作。@jyoseph-使用倒勾“`”,或ANSI双引号(大多数人使用倒勾)
UPDATE contents SET `desc` = replace(`desc`, ...