MySQL:嵌入式(不是尾随)换行符

时间:2015-01-03 17:40:14

标签: mysql

我有点问题。我有一个我在AngularJS网站上使用的旧数据库。 Angular不喜欢(读取:chokes on)文本列中的换行符,老实说,我不需要它们。所以,我很高兴用REPLACE替换它们。需要注意的是,REGEXP或REPLACE似乎并没有找到" \ n"如果嵌入了字符(或" \ r \ n"),那么这就是

当我这样做时

SELECT * FROM my_table WHERE text_column REGEXP '.*\n.*'

我只得到几个点击,我相信以换行符结尾。

UPDATE my_table SET text_column = REPLACE( text_column, "\n", "" )

它只会改变尾随的(大概)。我可能会遗漏一些东西。

思想?

编辑:根据CBroe的建议,我倾倒了内容并在vim中检查了它们。看起来新行实际上是^ M.根据下面的帖子,^ M是vim显示0xD的方式,它是 windows 回车。我不记得曾经使用Windows来填充数据,但我想这并不是闻所未闻的。 (这将是10多年前)。 Anywho,我如何匹配/替换这个角色? REGEXP不会捕获0xD AFAIK。

1 个答案:

答案 0 :(得分:1)

我会在MySQL之外解决这个问题。

  1. 将表转储到文件
  2. 替换文件中的所有不良字符(如解释here
  3. 将表格重新导入数据库