โพสต์ของวันนี้จะแนะนำคุณเกี่ยวกับวิธีการดึงข้อมูลจากประเภท JSON ใน MySQL โดยใช้วิธีต่างๆ เราจะกล่าวถึงการทำงานทั่วไปในการแยกข้อมูลจากประเภท JSON ใน MySQL และดูเพิ่มเติมเกี่ยวกับวิธีการทำงานกับประเภทข้อมูล JSON ในตาราง MySQL เพื่อแยกข้อมูลที่แตกต่างกันออกจากคอลัมน์
วิธีแยกข้อมูล JSON ใน MySQL
เมื่อคุณต้องการแยกข้อมูล JSON ใน MySQL ฟังก์ชันหลักที่คุณควรใช้คือ JSON_EXTRACT ซึ่งทำงานกับไวยากรณ์ต่อไปนี้:
JSON_EXTRACT ( json_file, เส้นทาง [ , เส้นทาง ] ... ) ;
คุณต้องระบุสองอาร์กิวเมนต์เมื่อดำเนินการฟังก์ชัน อาร์กิวเมนต์แรกคือเอกสาร JSON อีกเส้นทางหนึ่งคือเส้นทางไปยังค่าในประเภทข้อมูล JSON ที่คุณต้องการแยก เราจะยกตัวอย่างต่างๆ เพื่อช่วยให้เข้าใจวิธีแยกข้อมูลจากประเภท JSON ใน MySQL
ตัวอย่างที่ 1: การแยกค่าหนึ่งค่า
ตัวอย่างแรกคือแบบสอบถามธรรมดาที่ส่งคืนค่าหนึ่งค่าตามเส้นทางที่ระบุในคอลัมน์ที่ระบุในข้อมูล JSON ตัวอย่างต่อไปนี้ระบุเส้นทางที่อยู่หลังตัวดำเนินการจุด และเส้นทางคือชื่อคีย์ในข้อมูล JSON
เอาต์พุตประกอบด้วยชื่อคีย์ที่ระบุซึ่งคุณตั้งเป้าที่จะบรรลุผล และพิมพ์ออกมาเป็นเครื่องหมายคำพูด หากต้องการลบเครื่องหมายคำพูด คุณสามารถใช้ JSON_VALUE() แทน JSON_EXTRACT() ได้ดังตัวอย่างต่อไปนี้:
ตัวอย่างที่ 2: การแยกค่าหลายค่า
เมื่อแยกหลายเส้นทางในข้อมูล JSON คุณต้องระบุเส้นทางเป้าหมายหลังตัวดำเนินการจุด และคั่นด้วยเครื่องหมายจุลภาค มาดูตัวอย่างที่เราต้องการแยกค่าสองค่าในข้อมูล JSON เดียวกันกับที่เราใช้ในตัวอย่างก่อนหน้านี้ เพื่อสิ่งนั้น เรามีตัวอย่างของเราดังแสดงต่อไปนี้:
ตัวอย่างที่ 3: แยกข้อมูล JSON จากอาร์เรย์
เมื่อคุณมีข้อมูล JSON ในอาร์เรย์ คุณสามารถแยกข้อมูลออกได้โดยการระบุตำแหน่งของค่าที่ต้องการ
นี่คือตัวอย่างที่เรามีอาร์เรย์ของตัวเลขและแยกค่าที่ตำแหน่ง 3 โดยใช้เครื่องหมาย “$”:
ตัวอย่างที่ 4: การแยกข้อมูล JSON ออกจากตาราง
สมมติว่าคุณมีตารางที่มีคอลัมน์ที่มี JSON นอกจากนี้ยังสามารถดึงข้อมูลออกมาได้อีกด้วย เรามาสร้างตารางตัวอย่างที่เราจะใช้สาธิตกัน เราตั้งชื่อตารางของเราว่า “หลักสูตร” ซึ่งมีสามคอลัมน์
นอกจากนี้เรายังสามารถแทรกข้อมูลลงในตารางของเราได้
ตารางสุดท้ายของเราซึ่งมีข้อมูล JSON ปรากฏดังนี้:
สมมติว่าเราต้องการแยกข้อมูล JSON ในคอลัมน์ 'course_details' ในตารางซึ่งมีโค้ดเท่ากับ F12 เราดำเนินการคำสั่งต่อไปนี้ โปรดทราบว่าใน JSON_EXTRACT() เราระบุอาร์กิวเมนต์แรกเป็นคอลัมน์ที่มีข้อมูล JSON และอาร์กิวเมนต์ที่สองคือค่าเฉพาะในข้อมูล JSON
เมื่อระบุชื่อคีย์ คุณต้องขึ้นต้นด้วย “$” และตัวดำเนินการจุด ในกรณีของเรา ชื่อคีย์คือ “โค้ด” และเราต้องการค้นหาค่าที่โค้ดตรงกับข้อมูลที่กำหนด
ผลลัพธ์ก่อนหน้านี้ตรงกับผลลัพธ์ที่เราคาดหวัง ซึ่งยืนยันว่าเราสามารถดึงข้อมูล JSON ได้
คุณยังสามารถระบุคอลัมน์เฉพาะในตารางที่คุณต้องการดึงข้อมูลได้อีกด้วย จากนั้น คุณสามารถใช้ตัวดำเนินการ “->” สำหรับข้อมูล JSON ได้ นอกจากนี้ยังย่อมาจาก JSON_EXTRACT() และคุณระบุค่าเป้าหมายโดยใช้ตัวดำเนินการ “$” และจุด
ตัวอย่างต่อไปนี้เลือกสองคอลัมน์และแยกชื่อคีย์ 'ชื่อ' ออกจากข้อมูล JSON สำหรับรายการทั้งหมด:
คุณสามารถกำจัดเครื่องหมายคำพูดในข้อมูลที่แยกออกมาได้โดยการแทนที่ตัวดำเนินการ “->” ด้วยตัวดำเนินการ “->>” จากนั้นระบุชื่อคีย์เป้าหมายตามตัวอย่างต่อไปนี้:
บทสรุป
โพสต์นี้อธิบายวิธีการดึงข้อมูลจากประเภท JSON ใน MySQL เราได้ยกตัวอย่างการใช้งานฟังก์ชัน 'แยก' ที่แตกต่างกันและตัวเลือกต่างๆ ที่คุณสามารถใช้ได้ หวังว่านั่นจะช่วยแก้ไขคำถามของคุณและช่วยให้คุณเข้าใจวิธีทำงานกับข้อมูล JSON ใน MySQL