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

ลบ Hyphen (-) ออกจากคอลัมน์ใน MySQL ด้วย REPLACE()

ใช้ฟังก์ชัน REPLACE() ในคำสั่ง UPDATE เพื่อลบอักขระ hyphen (-)

ไวยากรณ์

UPDATE yourTableName SET yourColumnName = REPLACE(yourColumnName, '-', '');

สร้างตารางตัวอย่าง

mysql> CREATE TABLE removeHyphensDemo (
    -> userId VARCHAR(100)
    -> );

เพิ่มข้อมูลตัวอย่าง (มี hyphen)

mysql> INSERT INTO removeHyphensDemo VALUES
('John-123-456'), ('Carol-9999-7777-66555'), ('123456-Bob-8765'), ('1678-9870-Sam');

แสดงข้อมูลก่อน

mysql> SELECT * FROM removeHyphensDemo;

ผลลัพธ์:

+-----------------------+
| userId                |
+-----------------------+
| John-123-456          |
| Carol-9999-7777-66555 |
| 123456-Bob-8765       |
| 1678-9870-Sam         |
+-----------------------+

ลบ hyphen ทั้งหมด

mysql> UPDATE removeHyphensDemo SET userId = REPLACE(userId, '-', '');
Query OK, 4 rows affected (0.26 sec)

ตรวจสอบหลังลบ hyphen

mysql> SELECT * FROM removeHyphensDemo;

ผลลัพธ์:

+--------------------+
| userId             |
+--------------------+
| John123456         |
| Carol9999777766555 |
| 123456Bob8765      |
| 16789870Sam        |
+--------------------+

REPLACE() สำหรับอักขระอื่นๆ

  • ลบ Space: REPLACE(col, ' ', '')
  • ลบ Comma: REPLACE(col, ',', '')
  • ลบ Parentheses: REPLACE(REPLACE(col, '(', ''), ')', '')
  • Normalize โทรศัพท์: REPLACE(REPLACE(REPLACE(phone, '-', ''), ' ', ''), '(', '')

ลบหลายอักขระพร้อมกัน (MySQL 8.0+)

-- ใช้ REGEXP_REPLACE (ต้อง MySQL 8.0.4+)
UPDATE table_name SET col = REGEXP_REPLACE(col, '[-.() ]', '');

-- หรือ nested REPLACE
UPDATE table_name SET col = REPLACE(REPLACE(REPLACE(col, '-', ''), '.', ''), ' ', '');

กรณีใช้งานจริง

  • ทำความสะอาดข้อมูลนำเข้า (ETL): ID, เบอร์โทร, รหัสไปรษณีย์
  • Normalize ข้อมูลก่อน Join/Compare
  • Generate slug/URL-friendly string