99 votes

Comment supprimer les caractères de nouvelle ligne des lignes de données dans mysql?

Je peux parcourir toutes les lignes d'un script php et faire

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

et couper peut supprimer \ n

Mais je me demandais si on pouvait faire la même chose en une requête?

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

est-ce que ça marchera? Je peux alors simplement exécuter cette requête sans avoir à passer en boucle!

Merci

(PS: Je pourrais le tester mais la table est assez grande et ne veut pas gâcher les données, alors pensez bien si vous avez déjà testé quelque chose comme ça auparavant)

144voto

Łukasz Rysiak Points 642
 UPDATE test SET log = REPLACE(REPLACE(log, '\r', ''), '\n', '');
 

a travaillé pour moi.

alors que son semblable, il va également se débarrasser de \ r \ n

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

128voto

longneck Points 5884

votre syntaxe est fausse:

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

19voto

Geo Points 971

1) Remplacez tous les nouveaux caractères de ligne et de tabulation par des espaces.

2) Supprimez tous les espaces de début et de fin .

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

3voto

Risse Points 23
UPDATE mytable SET title=TRIM(REPLACE(REPLACE(title, "\n", ""), "\t", ""));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X