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