ใช้ REPLACE() สำหรับ Find and Replace ใน MySQL
ฟังก์ชัน REPLACE() ใช้แทนที่สตริงย่อยในคอลัมน์ได้โดยตรงในคำสั่ง UPDATE
ไวยากรณ์
UPDATE yourTableName SET yourColumnName = REPLACE(yourColumnName, 'oldString', 'newString');
ตัวอย่าง: เปลี่ยนเส้นทางไฟล์
CREATE TABLE FindReplaceDemo (
FileId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
FileDirectory TEXT
);
INSERT INTO FindReplaceDemo(FileDirectory) VALUES
('C://User//MySQL'),
('D://WebsiteImage//image1.jpg'),
('E://Java//AdvancedJava');
แทนที่เส้นทาง Java
UPDATE FindReplaceDemo SET FileDirectory = REPLACE(FileDirectory, 'E://Java//AdvancedJava', 'E://Java//SpringAndHibernateFramework');
ผลลัพธ์
+--------+---------------------------------------+ | FileId | FileDirectory | +--------+---------------------------------------+ | 1 | C://User//MySQL | | 2 | D://WebsiteImage//image1.jpg | | 3 | E://Java//SpringAndHibernateFramework | +--------+---------------------------------------+
คุณสมบัติ
- แทนที่ ทุกครั้งที่เจอ ในสตริง
- Case-sensitive
- ไม่ใช้ Regular Expression ได้ (ต้องใช้ REGEXP_REPLACE ใน MySQL 8.0+)
- คืนค่าจำนวนแถวที่เปลี่ยนแปลง