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.