111

I can loop through all of the rows in a php script and do

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

and trim can remove \n

But I was just wondering if something same could be done in one query?

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

will it work? I can then just execute this query without requiring to loop through!

thanks

(PS: I could test it but table is quite large and dont want to mess with data, so just thought if you have tested something like this before)

5
  • You can just get rid of the where clause...be careful w/ your trim though because you might have other characters in the set (like carriage return '\r') Commented Oct 1, 2009 at 16:24
  • You should have tested that before you ask this question. It works. If you want to test that on big table you can use LIMIT clause. Commented Oct 1, 2009 at 16:26
  • Whats wrong with the WHERE clause? Just curious Commented Oct 1, 2009 at 17:02
  • @PhillPafford Nothing, technically, it's just redundant. (I know this is >5 years old, but might help other people coming to read it.) Commented Apr 23, 2015 at 20:10
  • Some DB/SQL Tools warn you (rightfully!) when you try to execute an UPDATE without a WHERE clause. This where 1=1 looks an awful lot like a way to bypass this check. I would avoid that. @PhillPafford @Bing Commented Jan 11, 2024 at 8:13

9 Answers 9

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

worked for me.

while its similar, it'll also get rid of \r\n

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

Sign up to request clarification or add additional context in comments.

3 Comments

this does not remove trailing \n, it removes all \n, which is not desired here.
This may not have worked for the exact OP, but did help in a sitch I was dealing with, +1
exactly what I needed.
141

your syntax is wrong:

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

Addition:

If the newline character is at the start of the field:

update mytable SET title = TRIM(LEADING '\n' FROM title)

2 Comments

coming from MSSQL, this syntax was very foreign to me. i thought you were using pseudocode! but it worked :)
Documentation on TRIM() for reference.
20

1) Replace all new line and tab characters with spaces.

2) Remove all leading and trailing spaces.

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

Comments

12

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

Above is working for fine.

1 Comment

This one is useful when '\n' is not working (tested on mysql workbench)
8

Removes trailing returns when importing from Excel. When you execute this, you may receive an error that there is no WHERE; ignore and execute.

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

Comments

6

Playing with above answers, this one works for me

REPLACE(REPLACE(column_name , '\n', ''), '\r', '')

Comments

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

1 Comment

this does not remove trailing \n, it removes all \n, which is not desired here.
0

My 2 cents.

To get rid of my \n's I needed to do a \\n. Hope that helps someone.

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

Comments

0

For new line characters

UPDATE table_name SET field_name = TRIM(TRAILING '\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r\n' FROM field_name);

For all white space characters

UPDATE table_name SET field_name = TRIM(field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\t' FROM field_name);

Read more: MySQL TRIM Function

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.