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

วิธีแทนที่ส่วนของสตริงในคอลัมน์ตาราง MySQL

การแทนที่ข้อความในคอลัมน์ด้วยฟังก์ชัน REPLACE()

ฟังก์ชัน REPLACE() ใน MySQL ใช้สำหรับค้นหาและแทนที่สตริงย่อยภายในคอลัมน์ โดยไม่ต้องดึงข้อมูลออกมาประมวลผลภายนอก เหมาะสำหรับการแก้ไข URL, เส้นทางไฟล์, หรือข้อความที่มีรูปแบบคงที่

ไวยากรณ์ (Syntax)

UPDATE yourTableName 
SET yourColumnName = REPLACE(yourColumnName, 'yourOldValue', 'yourNewValue');

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล:

mysql> CREATE TABLE replacePartOfStringDemo (
    -> WebsiteURL VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.47 sec)

mysql> INSERT INTO replacePartOfStringDemo(WebsiteURL) VALUES('www.mysqlQuestion.com');
Query OK, 1 row affected (0.14 sec)

ข้อมูลก่อนเปลี่ยนแปลง:

mysql> SELECT * FROM replacePartOfStringDemo;
+-----------------------+
| WebsiteURL            |
+-----------------------+
| www.mysqlQuestion.com |
+-----------------------+
1 row in set (0.00 sec)

แทนที่ 'www.mysqlQuestion.com' ด้วย 'www.mysql.com':

mysql> UPDATE replacePartOfStringDemo 
    -> SET WebsiteURL = REPLACE(WebsiteURL, 'www.mysqlQuestion.com', 'www.mysql.com');
Query OK, 1 row affected (0.20 sec)
Rows matched: 1 Changed: 1 Warnings: 0

ตรวจสอบผลลัพธ์:

mysql> SELECT * FROM replacePartOfStringDemo;
+---------------+
| WebsiteURL    |
+---------------+
| www.mysql.com |
+---------------+
1 row in set (0.00 sec)

คำอธิบายและข้อควรระวัง

  • REPLACE() แทนที่ ทุกครั้งที่พบ สตริงเก่าในคอลัมน์นั้น
  • การเปรียบเทียบเป็น Case-sensitive ตาม Collation ของตาราง
  • ควรทดสอบด้วย SELECT REPLACE(column, 'old', 'new') FROM table ก่อนรัน UPDATE จริง
  • หากต้องการแทนที่เฉพาะบางแถว ให้เพิ่มเงื่อนไข WHERE

ตัวอย่างเพิ่มเงื่อนไข: UPDATE table SET col = REPLACE(col, 'a', 'b') WHERE id > 100;