1

我不是 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。

有什么帮助吗?

4

3 回答 3

4

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

于 2012-04-03T21:19:23.817 回答
1

第二行;末尾有一个。当你删除它然后查询工作

于 2012-04-03T21:20:19.227 回答
1

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

我很震惊您的代码在本地主机上运行。您是否检查过查询是否在 localhost 上完全按照您的要求工作,或者它正在做其他事情。

于 2012-04-04T05:47:49.523 回答