Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สอบถามฐานข้อมูลสำหรับค่าที่ไม่ได้อยู่ในตาราง MySQL?


สำหรับสิ่งนี้ คุณสามารถใช้ 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 วินาที)