1

我有一个表,有两列:id, text 我想将换行符替换为文本列中的空格。

UPDATE txt SET text=REPLACE(text, '\n', ' ') WHERE text LIKE %\n%

这行得通吗?在我运行这段代码之前,我想确定一下。我不喜欢让我的桌子崩溃,因为我有很多数据。

4

2 回答 2

1

首先,找到至少一个包含数据的行 ID \n

SELECT id, text FROM txt
WHERE text LIKE '%\n%'
LIMIT 1

记下id,记住。然后,尝试使用您的查询替换它:

UPDATE txt SET text=REPLACE(text, '\n', ' ')
WHERE id = 123
  AND text LIKE '%\n%'

现在,检查您的更新是否成功(它应该显示空结果):

SELECT id, text FROM txt
WHERE text LIKE '%\n%'
  AND id = 123

如果它运行良好,运行相同的更新,但现在没有限制。

如果出现任何问题,您可能只损坏了您在第一步中看到的 id 和文本的一行,因此应该很容易修复。

于 2013-07-28T09:19:14.143 回答
0

首先备份表txt

select
*
into tt_txt_2013_07_28
from txt

现在找到count记录where text LIKE %\n%

select count(*)
from txt
where text LIKE %\n%

注意count

现在您可以运行更新查询并匹配计数。如果您有任何不好的结果,您可以从备份表中备份记录 tt_txt_2013_07_28

UPDATE txt 
SET text=REPLACE(text, '\n', ' ') 
WHERE text LIKE %\n%
于 2013-07-28T09:45:16.283 回答