สอบถามผู้รู้ด้าน MySQL : Update query ค่ะ

คือ ต้องการแก้ไขข้อมูลแบบ หลาย record ในการทำงานเพียง Statement เดียว
มีแนวทางยังไงได้บ้างคะ (หรือปรับเปลี่ยน table อย่างไรดี)

คือ มีข้อมูลเป็นรูปแบบ tree ใน table เดียวกัน มีรูปแบบ คือ
tree (id, name, parentid, level)

ข้อมูล เช่น  สินค้า
                  |
                  |___อาหาร
                  |        |
                  |        |____ข้าวกระเพราไก่
                  |        |
                  |        |____ข้าวไข่เจียว
                  |        |
                  |        |____ข้าวผัดทะเล
                  |
                  |___เครื่องเขียน
                           |
                           |____ดินสอ
                           |
                           |____ปากกา

จาก tree อธิบายได้ว่า ::

สินค้า (root) มี id : 1 , level : 1

อาหาร (parent) มิ id : 2 , parentid : 1 , level : 1.1
   ข้าวกระเพราไก่ (child) มิ id : 3 , parentid : 2 , level : 1.1.1
   ข้าวไข่เจียว (child) มิ id : 4 , parentid : 2 , level : 1.1.2
   ข้าวผัดทะเล (child) มิ id : 5 , parentid : 2 , level : 1.1.3

เครื่องเขียน (parent) มิ id : 6 , parentid : 1 , level : 1.2
   ดินสอ (child) มิ id : 7 , parentid : 6 , level : 1.2.1
   ปากกา (child) มิ id : 8 , parentid : 6 , level : 1.2.2

โดยผู้เขียนต้องการสลับตำแหน่งของ tree โดยให้ ข้าวผัดทะเล ขึ้นไปอยู่ node แรกสุดของประเภทสินค้า อาหาร โดย Update ตรง level เป็น 1.1.1
และให้ ข้าวกระเพราไก่ มี level เป็น 1.1.3 แทน

และการ Update query อีกแบบ คือ Insert query เข้ามาใหม่เลย
เช่น ต้องการเพิ่มยางลบ เข้ามาในประเภทสินค้า เครื่องเขียน โดยต้องการให้อยู่ใน leaf อันดับแรกสุด คือ มิ id : 9 , parentid : 6 , level : 1.2.1
ส่วนดินสอและ ปากกา ให้ Update ตรง level แบบเพิ่มขึ้นทีละ1 เป็น 1.2.2 และ 1.2.3 ตามลำดับ

ขอบคุณผู้รู้ทุกท่านค่ะ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่