Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL: ลบอักขระ newline (\r\n) ออกจากข้อความด้วย REPLACE

เมื่อข้อมูลในคอลัมน์มีอักขระ newline (\r\n หรือ \n) ทำให้การแสดงผลไม่สวยงาม สามารถใช้ฟังก์ชัน REPLACE() เพื่อลบหรือแทนที่อักขระเหล่านั้นได้

รูปแบบคำสั่ง

UPDATE your_table
SET your_column = REPLACE(your_column, '\r\n', '');
  • REPLACE(column, 'search_string', 'replace_string') - แทนที่สตริงที่ค้นพบ
  • ใช้ '' (empty string) เพื่อลบออกโดยไม่ทิ้งช่องว่าง

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูลที่มี \r\n:

CREATE TABLE removeDemo (
    Id INT NOT NULL AUTO_INCREMENT,
    Name TEXT,
    PRIMARY KEY (Id)
);

INSERT INTO removeDemo (Name) VALUES
('John\r\nSmithCarol'),
('LarryMike\r\nSam'),
('David\r\nBobJames');

ข้อมูลก่อนลบ (แสดงผลไม่เรียบร้อย):

+----+------------------+
| Id | Name             |
+----+------------------+
|  1 | John SmithCarol  |
|  2 | LarryMike Sam    |
|  3 | David BobJames   |
+----+------------------+

คำสั่งลบ \r\n

UPDATE removeDemo SET Name = REPLACE(Name, '\r\n', '');

ผลลัพธ์หลังลบ:

+----+----------------+
| Id | Name           |
+----+----------------+
|  1 | JohnSmithCarol |
|  2 | LarryMikeSam   |
|  3 | DavidBobJames  |
+----+----------------+

กรณีต้องการแทนที่ด้วยช่องว่าง

หากต้องการแยกคำด้วยช่องว่างแทนการต่อกัน:

UPDATE removeDemo SET Name = REPLACE(Name, '\r\n', ' ');

ผลลัพธ์: John SmithCarol, LarryMike Sam, David BobJames

ลบอักขระ newline ทุกประเภท (\n, \r, \r\n)

UPDATE removeDemo 
SET Name = REPLACE(REPLACE(REPLACE(Name, '\r\n', ''), '\n', ''), '\r', '');

วิธีนี้ครอบคลุมทุกรูปแบบ newline ที่พบได้ในระบบปฏิบัติการต่างๆ (Windows: \r\n, Unix/Linux: \n, Mac เก่า: \r)