如何从数据库中删除\ r \ n和多个反斜杠,以及如何防止它?

时间:2012-08-25 15:04:17

标签: mysql sql

我有一个包含2000多种产品的产品描述的数据库表,问题是当我从我的网站输入产品描述时有两个问题。 数据库在每个双引号或半引号符号旁边生成多个反斜杠。 每次我编辑产品时,反斜杠都会加倍。例如,在3-4次编辑之后看起来像这样:

  

这是一个非常......

然后就像....

  

非常......

等等......

我需要从我的数据库中大量删除它们,因为手动删除它们需要数天时间。

另外第二个问题是

  

\ r \ n

字符,在每个

旁边生成
  

< br>或者< br />标签。

正如您可能想象的那样,这会使我的数据库非常混乱并破坏产品描述。我一直试图解决它,研究等但我无法理解它以及如何阻止它。

任何人都可以帮我删除这些并阻止这种情况发生吗?

非常感谢您的帮助。 此致

1 个答案:

答案 0 :(得分:2)

令人感兴趣的是,您的MySQL上似乎有 NO_BACKSLASH_ESCAPES 模式。

如果我使用两个不同的sql,我可以重现在SQL Fiddle中的工作:

首先:

CREATE TABLE A
(
  Name varchar(64)
);

SET sql_mode = 'ANSI';

INSERT INTO A (Name) VALUES('aaa \n\r bbbb')

第二

CREATE TABLE A
(
  Name varchar(64)
);

SET sql_mode = 'NO_BACKSLASH_ESCAPES';

INSERT INTO A (Name) VALUES('aaa \n\r bbbb')

我运行一个简单的选择这样的证明:

SELECT Name FROM A

结果:

第一种情况: aaa bbbb

第二种情况: aaa \ n \ r \ nbbbb

我希望它有所帮助。

有关信息,请查看MySQL sql modes

对于现有问题的结束当然可以使用简单的REPLACE函数。但如果你正确设置模式,它将不会再发生!