เมื่อข้อมูลในคอลัมน์มีช่องว่าง (spaces) ระหว่างตัวอักษร และต้องการลบทิ้ง ให้ใช้ฟังก์ชัน REPLACE() แทนที่ช่องว่างด้วยสตริงว่าง
รูปแบบคำสั่ง
UPDATE table_name
SET column_name = REPLACE(column_name, ' ', '');
REPLACE(str, from_str, to_str)- แทนที่from_strด้วยto_str' '- ช่องว่าง (space)''- สตริงว่าง (empty string)
ตัวอย่างการใช้งาน
1. สร้างตารางและเพิ่มข้อมูลที่มีช่องว่างระหว่างตัวอักษร
CREATE TABLE removeSpaceDemo (
Id INT NOT NULL AUTO_INCREMENT,
UserId VARCHAR(20),
UserName VARCHAR(10),
PRIMARY KEY (Id)
);
INSERT INTO removeSpaceDemo (UserId, UserName) VALUES
(' John 12 67 ', 'John'),
('Carol 23 ', 'Carol');
ข้อมูลก่อนลบ:
+----+------------------+----------+
| Id | UserId | UserName |
+----+------------------+----------+
| 1 | John 12 67 | John |
| 2 | Carol 23 | Carol |
+----+------------------+----------+
2. ลบช่องว่างทั้งหมดในคอลัมน์ UserId
UPDATE removeSpaceDemo
SET UserId = REPLACE(UserId, ' ', '');
ผลลัพธ์: Query OK, 2 rows affected
3. ตรวจสอบข้อมูลหลังลบ
SELECT * FROM removeSpaceDemo;
+----+----------+----------+
| Id | UserId | UserName |
+----+----------+----------+
| 1 | John1267 | John |
| 2 | Carol23 | Carol |
+----+----------+----------+
ฟังก์ชันที่เกี่ยวข้อง
| ฟังก์ชัน | ใช้สำหรับ |
|---|---|
REPLACE(str, ' ', '') | ลบช่องว่าง ทุกตำแหน่ง (นำหน้า ระหว่าง ต่อท้าย) |
TRIM(str) | ลบช่องว่าง เฉพาะนำหน้าและต่อท้าย |
LTRIM(str) | ลบช่องว่าง เฉพาะนำหน้า |
RTRIM(str) | ลบช่องว่าง เฉพาะต่อท้าย |
ตัวอย่างเปรียบเทียบ
SET @s = ' Hello World ';
SELECT
REPLACE(@s, ' ', '') AS replace_all, -- 'HelloWorld'
TRIM(@s) AS trim_both, -- 'Hello World'
LTRIM(@s) AS ltrim_only, -- 'Hello World '
RTRIM(@s) AS rtrim_only; -- ' Hello World'
เลือกฟังก์ชันตามต้องการ: REPLACE ลบทุกช่องว่าง, TRIM ลบเฉพาะขอบ