ฟังก์ชัน INSERT() ใน MySQL ใช้เพื่อแทรกข้อความ (string) ลงไปในข้อความอีกชุดหนึ่ง โดยสามารถเลือกได้ว่าให้แทรกเริ่มที่ตำแหน่งใด และจะแทนที่กี่ตัวอักษรของข้อความต้นฉบับ
ประโยชน์ของฟังก์ชัน INSERT()
- ใช้แก้ไขข้อความบางส่วนได้โดยไม่ต้องแปลงหรือใช้
CONCAT()หลายรอบ - เหมาะสำหรับการแทรกหรือแทนที่ข้อความภายในข้อความเดิม
- ใช้จัดการข้อความ เช่น รหัสสินค้า, หมายเลขโทรศัพท์, ชื่อ, รายละเอียด ฯลฯ
รูปแบบการใช้งาน
INSERT(original_string, start_position, length_to_replace, new_string)
original_stringคือข้อความต้นฉบับstart_positionคือตำแหน่งที่ต้องการแทรก (เริ่มที่ 1)length_to_replaceคือจำนวนอักขระในข้อความต้นฉบับที่ต้องการลบทิ้ง/แทนที่new_stringคือข้อความใหม่ที่ต้องการแทรกเข้าไป
ตัวอย่างการใช้งาน
แทรกคำใหม่ลงในข้อความ
SQL
SELECT INSERT('Hello World', 7, 5, 'MySQL');
-- ผลลัพธ์: 'Hello MySQL'- เริ่มแทรกที่ตำแหน่งที่ 7 (ตัว W ของ “World”)
- ลบ 5 ตัวอักษร (
World) - แทนที่ด้วย
MySQL
แทรกโดยไม่ลบข้อความเดิม
SQL
SELECT INSERT('ABCDEF', 4, 0, '123');
-- ผลลัพธ์: 'ABC123DEF'- แทรก
'123'หลัง'C'โดยไม่ลบอักขระใดออก
สมมุติต้องการแก้ไขชื่อภาพยนตร์บางรายการ โดยเปลี่ยนคำใน title
SQL
SELECT title,
INSERT(title, 1, 4, 'NEW') AS modified_title
FROM film
WHERE title LIKE 'A%'
LIMIT 5;- แสดงชื่อภาพยนตร์ที่ขึ้นต้นด้วย “A”
- แทรกคำว่า
'NEW'แทน 4 ตัวแรกของtitle
หมายเหตุ
start_positionเริ่มนับจาก1(ไม่ใช่0)- ถ้า
start_positionมากกว่าความยาวของข้อความ จะคืนค่าต้นฉบับโดยไม่มีการเปลี่ยนแปลง - ถ้า
length_to_replaceเป็น0ข้อความใหม่จะถูกแทรกโดยไม่ลบข้อความเดิม - ผลลัพธ์จะเป็น string ใหม่ ไม่เปลี่ยนค่าต้นฉบับในตาราง