MySQL错误:“WHERE post LIKE”无法正常工作

时间:2012-04-03 21:16:10

标签: mysql replace

我不是MySQL专家,我对此有疑问......

所以,我有一个论坛板数据库。我需要替换其中一个表中的过时代码。我正试着用这个:

Update ibf_posts
Set    post = replace(post, '<div width="95%" style="margin:8px 26px 4px 26px"><a href="javascript:void(0);" onclick="javascript:spoil(this);"><div class=\'spoilertop\'><b>SPOILER</b> [Show/Hide]</div></a><div style="display: none;" class="spoilermain">', '<div width="95%" style="margin:8px 26px 4px 26px"><a class=\'spoilertop\' style=\'display:block;\'><b>SPOILER</b> [Show/Hide]</a><div class="spoilermain">');
WHERE  post LIKE '%<div width="95%" style="margin:8px 26px 4px 26px"><a href="javascript:void(0);" onclick="javascript:spoil(this);"><div class=\'spoilertop\'><b>SPOILER</b> [Show/Hide]</div></a><div style="display: none;" class="spoilermain">%';

但它不起作用。它说:

#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 'WHERE  post LIKE '%<div width="95%" style="margin:8px 26px 4px 26px"><a href="ja' at line 1 

这很奇怪,因为我尝试了我的本地主机,它工作正常。但是,当我在我的实时服务器中尝试时,它不起作用。我的MySQL版本(在实时服务器上)是MySQL 4.1.22。

任何帮助?

3 个答案:

答案 0 :(得分:4)

你应该删除第二行末尾的分号,因为它表示查询结束,这不是真的。

答案 1 :(得分:1)

第二行最后有一个;。删除后再query works

答案 2 :(得分:1)

分号(;)用于终止查询,意味着我们在每个不在中间的查询的末尾只使用一个分号。

我很震惊您的代码在localhost上工作。您是否检查过该查询在localhost上完全符合您的要求,或者它正在执行其他操作。