Mysql'de veri satırlarından yeni satır karakterleri nasıl kaldırılır?


87

Bir php betiğindeki tüm satırlarda döngü yapabilirim ve

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

ve trim kaldırılabilir \ n

Ama merak ediyordum da aynı şey tek bir sorguda yapılabilir mi?

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

çalışacak mı Daha sonra bu sorguyu döngü yapmadan çalıştırabilirim!

Teşekkürler

(Not: Test edebilirdim ancak tablo oldukça büyük ve verilerle uğraşmak istemiyor, bu yüzden daha önce böyle bir şeyi test ettiyseniz düşündüm.)


Nerede cümlesinden kurtulabilirsiniz ...
— kırparken

Bu soruyu sormadan önce bunu test etmeliydin. İşe yarıyor. Bunu büyük bir masada test etmek istiyorsanız, LIMIT cümlesini kullanabilirsiniz.
— Lukasz Lysik

WHERE cümlesinin nesi yanlış? Sadece meraklı
— Phill Pafford

@PhillPafford Teknik olarak hiçbir şey, sadece gereksiz. (Bunun> 5 yaşında olduğunu biliyorum, ancak onu okumaya gelen diğer insanlara yardımcı olabilir.)
— Bing

Yanıtlar:


121

sözdiziminiz yanlış:

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

İlave:

Yeni satır karakteri alanın başındaysa:

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

6
MSSQL'den gelen bu sözdizimi bana çok yabancıydı. sözde kod kullandığını sanıyordum! ama işe yaradı :)
— Jeff

Referans için TRIM () ile ilgili belgeler .
— Mark G

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

benim için çalıştı.

benzer olmakla birlikte, aynı zamanda \ r \ n

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


8
bu sonları kaldırmaz, \ n hepsini kaldırır, ki burada istenmez.
— longneck

20
Bu tam olarak OP için işe yaramayabilir, ancak uğraştığım bir duruma yardımcı oldu, +1
— Mike Purcell

Benim için çalıştı, teşekkürler.
— Exoon

tam olarak ihtiyacım olan şey.
— user3453428

14

1) Tüm yeni satır ve sekme karakterlerini boşluklarla değiştirin.

2) Baştaki ve sondaki tüm boşlukları kaldırın .

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

9

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

Yukarıda iyi için çalışıyor.


3
Bu, '\ n' çalışmadığında kullanışlıdır (mysql tezgahında test edilmiştir)
— Mohamed23gharbi

6

Excel'den içe aktarırken sondaki iadeleri kaldırır. Bunu çalıştırdığınızda, WHERE olmadığına dair bir hata alabilirsiniz; görmezden gel ve çalıştır.

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

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

4
bu sonları kaldırmaz, \ n hepsini kaldırır, ki burada istenmez.
— longneck

0

2 sentim.

Benimkilerden kurtulmak için \\ n yapmam gerekiyor. Umarım bu birine yardımcı olur.

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

0

Yeni satır karakterleri için

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);

Tüm beyaz boşluk karakterleri için

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);

Daha fazla oku: MySQL TRIM İşlevi


0

Yukarıdaki cevaplarla oynamak, bu benim için çalışıyor

REPLACE(REPLACE(column_name , '\n', ''), '\r', '')
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.