我有一个包含超过400k记录的sqlite数据库。我刚刚发现一些文本字段中有回车符,我想清除它们。我想复制原始表的结构,然后执行以下操作:
INSERT INTO large_table_copy
SELECT date, other_fields, replace(dirty_text_field,XXX,"")
FROM large_table
其中XXX
是回车的代码。这不是\n
。但我不知道它是什么。
答案 0 :(得分:21)
SQLite允许您将换行符放在字符串文字中,如下所示:
SELECT replace(dirty_text_field, '
', '');
如果您不喜欢这种语法,则可以将BLOB
:X'0D'
传递给\r
或X'0A'
传递\n
(假设默认的UTF-8编码。)
编辑:由于此答案最初编写,因此SQLite添加了CHAR
函数。因此,您现在可以为CHAR(13)
编写\r
或为CHAR(10)
编写\n
,无论您的数据库是以UTF-8还是UTF-16编码,都可以使用。
答案 1 :(得分:2)
来自@ MarkCarter对上述问题的评论:
SELECT replace(dirty_text_field, X'0A', '\n');