MySQL ไม่มี str_replace แต่มี REPLACE() แทน
ใน MySQL ฟังก์ชันที่เทียบเท่ากับ str_replace ของ PHP คือ REPLACE() ใช้สำหรับแทนที่ข้อความในคอลัมน์ข้อมูล รูปแบบคือ:
UPDATE your_table_name
SET column_name = REPLACE(column_name, 'search_string', 'replace_string')
WHERE column_name LIKE '%search_string%';
ตัวอย่างการใช้งานจริง
1. สร้างตารางเก็บ URL
CREATE TABLE StringReplaceDemo (
Id INT,
URL VARCHAR(200)
);
2. เพิ่มข้อมูล URL ตัวอย่าง
INSERT INTO StringReplaceDemo VALUES
(1001, 'https://www.google.co.in'),
(1002, 'https://www.facebook.com'),
(1003, 'https://mail.google.com');
3. แทนที่ 'mail' ด้วย 'www'
UPDATE StringReplaceDemo
SET URL = REPLACE(URL, 'mail', 'www')
WHERE URL LIKE '%mail%';
ผลลัพธ์หลังการอัปเดต
| Id | URL |
|---|---|
| 1001 | https://www.google.co.in |
| 1002 | https://www.facebook.com |
| 1003 | https://www.google.com |
คุณสมบัติสำคัญของ REPLACE()
- แทนที่ ทุกครั้ง ที่พบข้อความที่ค้นหา
- ค้นหาแบบ Case-sensitive (แยกตัวพิมพ์เล็ก/ใหญ่)
- คืนค่า string เดิมหากไม่พบข้อความที่ต้องการแทนที่
- ใช้ได้ใน SELECT เพื่อแสดงผลโดยไม่เปลี่ยนข้อมูลจริง:
SELECT REPLACE(column, 'old', 'new') FROM table