EXISTS จะบอกว่าการสืบค้นส่งคืนผลลัพธ์หรือไม่ในขณะที่สามารถใช้ IN เพื่อเปรียบเทียบค่าหนึ่งกับค่าอื่น IN ใช้ค่าตัวอักษร
หมายเหตุ − IN เป็นที่ต้องการในเคียวรีย่อยเมื่อใดก็ตามที่ผลลัพธ์ของเคียวรีย่อยมีขนาดเล็กมาก หากผลลัพธ์ของการค้นหาย่อยมีขนาดใหญ่มาก ระบบจะใช้ EXISTS
เนื่องจาก IN เป็นตัวเลือกที่ต้องการสำหรับผลลัพธ์การค้นหาย่อยที่มีขนาดเล็กกว่า เรากำลังพิจารณาตัวอย่างของ IN
เพื่อสร้างตาราง
mysql> สร้างตาราง InSubQueryDemo -> ( -> PNumber int, -> PName varchar(100) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.60 วินาที)
กำลังแทรกระเบียนลงในตาราง
mysql> แทรกลงในค่า InSubQueryDemo (1,'Laptop'); Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า InSubQueryDemo (2,'WirelessKeyboard'); Query OK, 1 แถวได้รับผลกระทบ (0.21 วินาที )mysql> แทรกลงในค่า InSubQueryDemo (3,'WirelessMouse'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที)
กำลังแสดงรายการทั้งหมด
mysql> เลือก *จาก InSubQueryDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+---------+-----------------+| PNumber | PName |+---------+-----------------+| 1 | แล็ปท็อป || 2 | คีย์บอร์ดไร้สาย || 3 | WirelessMouse |+---------+-----------------+3 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นไวยากรณ์สำหรับ IN ที่มีแบบสอบถามย่อยเพื่อดึง “PNumber” ที่มากกว่า 1
mysql> เลือก *จาก InSubQueryDemo -> โดยที่ PNumber IN (เลือก PNumber จาก InSubQueryDemo WHERE PNumber> 1);
นี่คือผลลัพธ์
<ก่อนหน้า>+---------+-----------------+| PNumber | PName |+---------+-----------------+| 2 | คีย์บอร์ดไร้สาย || 3 | WirelessMouse |+---------+-----------------+2 แถวในชุด (0.04 วินาที)