ลบอักขระพิเศษจากฟิลด์ฐานข้อมูลได้ด้วยฟังก์ชัน REPLACE() อักขระพิเศษเช่น เครื่องหมายคำพูดคู่ ("), ตัวแฮช (#), ดอลลาร์ ($), เปอร์เซ็นต์ (%) เป็นต้น
รูปแบบไวยากรณ์
UPDATE yourTableName SET yourColumnName = REPLACE(yourColumnName, 'yourSpecialCharacters', '');
ตัวอย่างการใช้งาน
สร้างตาราง:
mysql> CREATE TABLE RemoveSpecialCharacterDemo ( Id INT NOT NULL AUTO_INCREMENT, Name VARCHAR(20), PRIMARY KEY(Id) ); Query OK, 0 rows affected (0.59 sec)
เพิ่มข้อมูลที่มีอักขระ $:
mysql> INSERT INTO RemoveSpecialCharacterDemo(Name) VALUES('$John'); Query OK, 1 row affected (0.29 sec)
mysql> INSERT INTO RemoveSpecialCharacterDemo(Name) VALUES('$Carol'); Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO RemoveSpecialCharacterDemo(Name) VALUES('$Mike'); Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO RemoveSpecialCharacterDemo(Name) VALUES('$Sam'); Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO RemoveSpecialCharacterDemo(Name) VALUES('$Dav$id$'); Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO RemoveSpecialCharacterDemo(Name) VALUES('Robert$'); Query OK, 1 row affected (0.30 sec)
mysql> INSERT INTO RemoveSpecialCharacterDemo(Name) VALUES('J$ames$'); Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO RemoveSpecialCharacterDemo(Name) VALUES('Max$well$'); Query OK, 1 row affected (0.27 sec)
แสดงข้อมูลก่อนลบ:
+----+-----------+ | Id | Name | +----+-----------+ | 1 | $John | | 2 | $Carol | | 3 | $Mike | | 4 | $Sam | | 5 | $Dav$id$ | | 6 | Robert$ | | 7 | J$ames$ | | 8 | Max$well$ | +----+-----------+ 8 rows in set (0.00 sec)
คำสั่งลบอักขระ $ ทั้งหมด:
mysql> UPDATE RemoveSpecialCharacterDemo SET Name = REPLACE(Name, '$', ''); Query OK, 8 rows affected (0.22 sec) Rows matched: 8 Changed: 8 Warnings: 0
ตรวจสอบข้อมูลหลังลบ:
+----+---------+ | Id | Name | +----+---------+ | 1 | John | | 2 | Carol | | 3 | Mike | | 4 | Sam | | 5 | David | | 6 | Robert | | 7 | James | | 8 | Maxwell | +----+---------+ 8 rows in set (0.00 sec)
อักขระ $ ถูกลบออกหมดจากทุกแถว สำหรับอักขระพิเศษหลายตัว ให้ใช้ REPLACE() ซ้อนกันหลายครั้ง