转义要用 "\",可是我用不用引号都不行,好几个比较特别的字符都转义了也不行!原来的语句:
Update credit_page2 set detail=REPLACE(detail,'amp;ID=0&MC','ID=0&MC') 
where detail LIKE '%amp;ID=0&MC%'
其目的就是批量替换表里面某个字段的几个字符"amp;ID=0&MC"为"ID=0&MC"。后来我改的:
Update credit_page2 set detail=REPLACE(detail,"amp\;ID\=0\&amp\;MC","ID\=0\&MC") 
where detail LIKE "%amp\;ID\=0\&amp\;MC%"
也尝试了分别分号 等号 与号进行转义 都出以下类似的错误://///////////////////////////////////////////////////////////////////////////////////错误
您的 SQL 查询可能有错。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助作用。ERROR: 引号不配对 @ 100
STR: "
SQL: Update credit_page2 set detail=REPLACE(detail,"amp\;ID\=0\&amp\;MC","ID\=0\&MC") 
where detail LIKE "%amp\;ID\=0\&amp\;MC%
SQL 查询: Update credit_page2 set detail=REPLACE(detail,"amp\;ID\=0\&amp\;MC","ID\=0\&MC") where detail LIKE "%amp\;ID\=0\&amp\;MC% MySQL 返回: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"%amp\;ID\=0\&amp\;MC%' at line 2 

解决方案 »

  1.   

    晕 里面不是说了吗
    其目的就是批量替换表里面某个字段的几个字符"amp;ID=0&MC"为"ID=0&MC"。 
      

  2.   

    其目的就是批量替换表里面某个字段的几个字符"amp;ID=0&MC"为"ID=0&MC"。 
      

  3.   

    晕,这几个都不是特殊字符,你没事儿用什么转义符啊?!!! 瞎折腾。mysql> select replace('asdf asdfaamp;ID=0&MCd adsf a','amp;ID=0&MC','ID=0&MC');
    +--------------------------------------------------------------------------+
    | replace('asdf asdfaamp;ID=0&MCd adsf a','amp;ID=0&MC','ID=0&MC') |
    +--------------------------------------------------------------------------+
    | asdf asdfaID=0&MCd adsf a                                                |
    +--------------------------------------------------------------------------+
    1 row in set (0.03 sec)
      

  4.   

    我第一句就是没有转义 也一样出错啊。
    你的我看不懂,怎么多了这么多asdf 随手敲的吗?
      

  5.   

    Update credit_page2 set detail=REPLACE(detail,'amp;ID=0&MC','ID=0&MC') 
    where detail LIKE '%amp;ID=0&MC%' 请你试试这句能运行吗?
      

  6.   

    无语了。!!!replace('asdf asdfaamp;ID=0&MCd adsf a','amp;ID=0&MC','ID=0&MC');replace函数有三个参数!
    REPLACE(str,from_str,to_str) replace(
         'asdf asdfaamp;ID=0&MCd adsf a',
         'amp;ID=0&MC',
         'ID=0&MC');我不随便打点什么,你让我用什么做测试吗?我有你的表吗?!
      

  7.   

    这么生气干嘛 呵呵我现在不是有3个参数吗?
    Update credit_page2 set detail=REPLACE(detail,'amp;ID=0&MC','ID=0&MC') 
    where detail LIKE '%amp;ID=0&MC%' str就是字段detail
    from_str就是'amp;ID=0&MC'
    to_str就是'ID=0&MC'而且你看,我这个sql语句已经运行成功了,替换好了,是类似的一个语句:
    Update credit_page set detail=REPLACE(detail,'frmQueryMode.aspx',
    'Query/frmQueryMode.aspx') where detail LIKE '%frmQueryMode.aspx%'
    可见我的参数并没有问题吧。
      

  8.   

    是不是where之后有错啊?
    where detail LIKE '%amp;ID=0&MC%' 
      

  9.   

    2,3楼是回答你的问题
    2楼是第一次回答 3楼是第一次回答之后csdn不显示所以重发。应该是where子句错了!
    我去掉where子句就可以运行了 呵呵 
    where子句错在哪里呢?百分号?
      

  10.   

    Update credit_page2 set detail=REPLACE(detail,'amp;ID=0&MC','ID=0&MC') 
    where detail LIKE '%amp;ID=0&MC%' 
    请问各位where子句是错在哪里呢?
    where detail LIKE '%amp;ID=0&MC%' 
      

  11.   

    影响列数: 0 (查询花费 0.0006 秒)
    SQL 查询:
    UPDATE job SET title = REPLACE( title, 'amp;ID=0&MC', 'ID=0&MC' ) WHERE title LIKE '%amp;ID=0&MC%' 我用我的表运行,数据是为空,没有任何错误.
      

  12.   

    运行后没问题,可能是你的Collation的问题,我用的是 varchar