2009-10-01 50 views
64

我可以遍歷所有的PHP腳本行並做如何從mysql中的數據行中刪除新的行字符?

UPDATE mytable SET title = "'.trim($row['title']).'" where id = "'.$row['id'].'";

和裝飾可以刪除\ n

但我只是想知道,如果事情同樣可以在一個查詢中做了什麼?

update mytable SET title = TRIM(title, '\n') where 1=1 

它會工作嗎?然後我可以執行這個查詢,而不需要循環遍歷!

感謝

(PS:我可以測試,但表是相當大的和不想要的數據混亂,所以只是想,如果你已經測試過這樣的事情)

+0

你可以只擺脫where子句中......小心瓦特/你裝飾,但因爲你可能在設定的其它字符(如回車「\ r」) – jkelley 2009-10-01 16:24:38

+0

你應該有測試前你問這個問題。有用。如果你想在大表上測試,你可以使用LIMIT子句。 – 2009-10-01 16:26:40

+0

WHERE子句有什麼問題?只是好奇 – 2009-10-01 17:02:35

回答

94

你的語法是錯誤的:

update mytable SET title = TRIM(TRAILING '\n' FROM title) 
+4

,這種語法對我來說非常陌生。我以爲你在使用僞代碼!但它的工作:) – Jeff 2013-04-22 14:29:16

2
UPDATE mytable SET title=TRIM(REPLACE(REPLACE(title, "\n", ""), "\t", "")); 
+2

這不會消除尾隨\ n,它會刪除所有\ n,這是不希望在這裏。 – longneck 2013-04-22 14:43:04

85
UPDATE test SET log = REPLACE(REPLACE(log, '\r', ''), '\n', ''); 

爲我工作。

而其類似,它同樣會擺脫\ r \ n

http://lists.mysql.com/mysql/182689

+3

這不會刪除尾部\ n,它將刪除所有\ n,這在此不是所期望的。 – longneck 2013-04-22 14:42:28

+15

這可能不適用於確切的OP,但確實幫助了我正在處理的縫合線,+1 – 2013-06-25 17:56:42

+0

爲我工作,謝謝。 – Exoon 2015-04-06 15:02:37

11

1)更換所有新線標籤字符空間。

2)刪除所有前導和尾隨空格。

UPDATE mytable SET `title` = TRIM(REPLACE(REPLACE(REPLACE(`title`, '\n', ' '), '\r', ' '), '\t', ' ')); 
7

update mytable set title=trim(replace(REPLACE(title,CHAR(13),''),CHAR(10),''));

以上工作的罰款。

+3

當\ n不工作時(在mysql工作臺上測試) – Mohamed23gharbi 2015-11-23 16:32:04

1

刪除從Excel導入時的尾部退貨。當您執行此操作時,您可能會收到一個錯誤,指出沒有WHERE;忽略並執行。

UPDATE table_name SET col_name = TRIM(TRAILING '\r' FROM col_name) 
0

我的2美分。

爲了擺脫我\ n的我需要做一個\\ n。希望能幫助別人。

update mytable SET title = TRIM(TRAILING '\\n' FROM title) 
相關問題