MySQL การใช้งานฟังก์ชัน INSERT()

ฟังก์ชัน 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 ใหม่ ไม่เปลี่ยนค่าต้นฉบับในตาราง
แชร์เรื่องนี้