เมื่อข้อมูลในคอลัมน์มีอักขระ 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)