Mysql में डेटा पंक्तियों से नई लाइन वर्ण कैसे निकालें?


87

मैं एक php स्क्रिप्ट में सभी पंक्तियों के माध्यम से लूप कर सकता हूं और कर सकता हूं

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

और ट्रिम \ n हटा सकते हैं

लेकिन मैं सोच रहा था कि क्या एक क्वेरी में कुछ ऐसा ही किया जा सकता है?

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

क्या ये काम करेगा? मैं तो लूप की आवश्यकता के बिना इस क्वेरी को निष्पादित कर सकता हूं!

धन्यवाद

(पुनश्च: मैं इसका परीक्षण कर सकता हूं, लेकिन तालिका काफी बड़ी है और न ही डेटा के साथ खिलवाड़ करना चाहते हैं, इसलिए अभी सोचा है कि क्या आपने पहले ऐसा कुछ परीक्षण किया है)


आप सिर्फ इस बात से छुटकारा पा सकते हैं कि क्लॉज ... सावधान w / आपका ट्रिम हो सकता है क्योंकि आपके पास सेट में अन्य वर्ण हो सकते हैं (जैसे गाड़ी वापसी '\ r')
jkelley

आपको यह प्रश्न करने से पहले परीक्षण करना चाहिए था। यह काम करता हैं। यदि आप यह जांचना चाहते हैं कि बड़ी मेज पर आप लिमिट क्लॉज का उपयोग कर सकते हैं।
लुकाज़ लिसिक

व्हाट्सऐप क्लॉज के साथ गलत हुआ? बस जिज्ञासु
Phill Pafford

@PhillPafford कुछ भी नहीं, तकनीकी रूप से, यह सिर्फ बेमानी है। (मुझे पता है कि यह 5 साल पुराना है, लेकिन इसे पढ़ने के लिए आने वाले अन्य लोगों की मदद कर सकते हैं।)
बिंग

जवाबों:


120

आपका वाक्यविन्यास गलत है:

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

6
MSSQL से आने वाला, यह वाक्य रचना मेरे लिए बहुत ही विदेशी था। मुझे लगा कि आप स्यूडोकोड का उपयोग कर रहे थे! लेकिन इसने काम किया :)
Jeff

संदर्भ के लिए TRIM () पर प्रलेखन ।
मार्क जी

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

मेरे लिए काम किया।

इसके समान होने पर, यह \ r \ n से भी छुटकारा पा लेगा

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


8
यह ट्रेलिंग \ n को नहीं हटाता है, यह सभी \ n को हटा देता है, जो यहाँ वांछित नहीं है।
लॉन्गनेक

20
यह सटीक ओपी के लिए काम नहीं कर सकता है, लेकिन एक ऐसी खाई में मदद करता है जिसके साथ मैं काम कर रहा था, +1
माइक पर्सल

मेरे लिए काम किया, धन्यवाद।
15

वास्तव में मुझे क्या चाहिए।
user3453428

14

1) सभी नई पंक्ति और टैब वर्णों को रिक्त स्थान से बदलें ।

2) सभी प्रमुख और अनुगामी रिक्त स्थान निकालें ।

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

ऊपर ठीक काम कर रहा है।


3
यह तब उपयोगी होता है जब '\ n' काम नहीं कर रहा होता है (mysql कार्यक्षेत्र पर परीक्षण किया जाता है)
Mohamed23gharbi

6

Excel से आयात करते समय ट्रेलिंग रिटर्न निकालता है। जब आप इसे निष्पादित करते हैं, तो आपको एक त्रुटि प्राप्त हो सकती है कि कोई WHERE नहीं है; नजरअंदाज करें और अमल करें।

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

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

4
यह ट्रेलिंग \ n को नहीं हटाता है, यह सभी \ n को हटा देता है, जो यहाँ वांछित नहीं है।
लॉन्गनेक

0

मेरे 2 सेंट।

मेरे \ n से छुटकारा पाने के लिए मुझे a \ n करने की आवश्यकता है। आशा है कि किसी की मदद करता है।

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

0

नई लाइन के पात्रों के लिए

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

और पढ़ें: MySQL TRIM फंक्शन


0

उपरोक्त उत्तरों के साथ खेलना, यह मेरे लिए काम करता है

REPLACE(REPLACE(column_name , '\n', ''), '\r', '')
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.