Posso percorrer todas as linhas em um script php e fazer
UPDATE mytable SET title = "'.trim($row['title']).'" where id = "'.$row['id'].'";
e o corte pode remover \ n
Mas eu estava pensando se algo igual poderia ser feito em uma consulta.
update mytable SET title = TRIM(title, '\n') where 1=1
será que vai dar certo? Posso então apenas executar essa consulta sem precisar fazer um loop!
obrigado
(PS: eu poderia testá-lo, mas a tabela é muito grande e não quer mexer com os dados, então pensei se você já testou algo assim antes)
Respostas:
sua sintaxe está errada:
update mytable SET title = TRIM(TRAILING '\n' FROM title)
Adição:
Se o caractere de nova linha estiver no início do campo:
update mytable SET title = TRIM(LEADING '\n' FROM title)
fonte
UPDATE test SET log = REPLACE(REPLACE(log, '\r', ''), '\n', '');
trabalhou para mim.
embora seja semelhante, também eliminará \ r \ n
http://lists.mysql.com/mysql/182689
fonte
1) Substitua todas as novas linhas e caracteres de tabulação por espaços.
2) Remova todos os espaços à esquerda e à direita .
UPDATE mytable SET `title` = TRIM(REPLACE(REPLACE(REPLACE(`title`, '\n', ' '), '\r', ' '), '\t', ' '));
fonte
update mytable set title=trim(replace(REPLACE(title,CHAR(13),''),CHAR(10),''));
Acima está funcionando bem.
fonte
Remove os retornos finais ao importar do Excel. Ao executar isso, você pode receber um erro informando que não há WHERE; ignorar e executar.
UPDATE table_name SET col_name = TRIM(TRAILING '\r' FROM col_name)
fonte
UPDATE mytable SET title=TRIM(REPLACE(REPLACE(title, "\n", ""), "\t", ""));
fonte
Meus 2 centavos.
Para me livrar dos meus \ n's, eu precisava fazer um \\ n. Espero que ajude alguém.
update mytable SET title = TRIM(TRAILING '\\n' FROM title)
fonte
Para novos caracteres de linha
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);
Para todos os caracteres de espaço em branco
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);
Leia mais: Função TRIM do MySQL
fonte
Brincando com as respostas acima, esta funciona para mim
REPLACE(REPLACE(column_name , '\n', ''), '\r', '')
fonte