问题
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)
回答1:
your syntax is wrong:
update mytable SET title = TRIM(TRAILING '\n' FROM title)
回答2:
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
回答3:
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', ' '));
回答4:
update mytable set title=trim(replace(REPLACE(title,CHAR(13),''),CHAR(10),''));
Above is working for fine.
回答5:
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)
回答6:
UPDATE mytable SET title=TRIM(REPLACE(REPLACE(title, "\n", ""), "\t", ""));
回答7:
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)
来源:https://stackoverflow.com/questions/1504962/how-to-remove-new-line-characters-from-data-rows-in-mysql