2011-01-09 74 views
7

我有一個SQLite數據庫超過40萬條記錄。我剛剛發現一些文本字段中有回車符,我想清除它們。我想複製原始表的結構,然後做一些事情,如:如何在sqlite中的文本字段中刪除回車?

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

哪裏XXX是什麼代碼將是一個回車。這不是\n。但我找不到它是什麼。

回答

17

的SQLite讓你把換行字符串文字裏面,像這樣:

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

如果你不喜歡這種語法,你可以把這個字符串作爲BLOBX'0D'\rX'0A'\n(假定默認的UTF-8編碼)。

編輯:由於本答案最初的編寫,SQLite增加了CHAR函數。因此,您現在可以編寫CHAR(13)\rCHAR(10)\n,無論您的數據庫是使用UTF-8編碼還是使用UTF-16編碼,這都可以工作。

+0

嘿,對於丹的歡呼聲。發現。 – alj 2011-01-10 00:09:26

0

從@上面的問題MarkCarter的評論:

SELECT replace(dirty_text_field, X'0A', '\n');