如何在sqlite的文本字段中删除回车?

时间:2011-01-09 23:27:20

标签: sqlite carriage-return

我有一个包含超过400k记录的sqlite数据库。我刚刚发现一些文本字段中有回车符,我想清除它们。我想复制原始表的结构,然后执行以下操作:

INSERT INTO large_table_copy 
SELECT date, other_fields, replace(dirty_text_field,XXX,"") 
FROM large_table

其中XXX是回车的代码。这不是\n。但我不知道它是什么。

2 个答案:

答案 0 :(得分:21)

SQLite允许您将换行符放在字符串文字中,如下所示:

SELECT replace(dirty_text_field, '
', '');

如果您不喜欢这种语法,则可以将BLOBX'0D'传递给\rX'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');