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

MySQL: ลบช่องว่างระหว่างตัวอักษรด้วย REPLACE

เมื่อข้อมูลในคอลัมน์มีช่องว่าง (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 ลบเฉพาะขอบ