我有一个表,有两列:id, text
我想将换行符替换为文本列中的空格。
UPDATE txt SET text=REPLACE(text, '\n', ' ') WHERE text LIKE %\n%
这行得通吗?在我运行这段代码之前,我想确定一下。我不喜欢让我的桌子崩溃,因为我有很多数据。
首先,找到至少一个包含数据的行 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 和文本的一行,因此应该很容易修复。
首先备份表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%