สำหรับสิ่งนี้ คุณสามารถใช้ UNION ALL ร่วมกับ WHERE NOT EXISTS และใช้ NOT IN เพื่อละเว้นค่าที่มีอยู่แล้วในตาราง ใช้ SELECT กับ UNION ALL เพื่อเพิ่มค่าที่ยังไม่มีอยู่ในตาราง
ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable1918 ( ค่า int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable1918 (); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1918 (); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1918 (); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1918 (); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1918 (); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที)ก่อน>แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก * จาก DemoTable1918;สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+-------+| ความคุ้มค่า |+-------+| 1 || 2 || 3 || 4 || 5 |+-------+5 แถวในชุด (0.00 วินาที)
นี่คือแบบสอบถามเพื่อ SELECT ค่าที่ไม่ได้อยู่ในตารางที่มี UNION ALL -
mysql> เลือก tbl.Value จาก ( เลือก 6 เป็น Value union all select 7 union all select 8 ) tbl ที่ไม่มีอยู่ ( เลือก 1 จาก DemoTable1918 tbl1 โดยที่ tbl1.Value=tbl.Value);
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+-------+| ความคุ้มค่า |+-------+| 6 || 7 || 8 |+-------+3 แถวในชุด (0.00 วินาที)