ในการทดสอบว่ามีแถวอยู่ในตาราง MySQL หรือไม่ ให้ใช้เงื่อนไขที่มีอยู่ เงื่อนไขที่มีอยู่สามารถใช้ได้กับแบบสอบถามย่อย คืนค่า จริง เมื่อมีแถวอยู่ในตาราง มิฉะนั้น จะส่งกลับค่าเท็จ True จะแสดงในรูปของ 1 และ false จะแสดงเป็น 0
เพื่อความเข้าใจที่ดีขึ้น ขั้นแรกเราจะสร้างตารางโดยใช้คำสั่ง CREATE ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างตาราง -
mysql> สร้างตาราง ExistsRowDemo-> (-> ExistId int,-> ชื่อ varchar(100)-> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.53 วินาที)
หลังจากสร้างตารางเรียบร้อยแล้ว เราจะแทรกระเบียนบางส่วนโดยใช้คำสั่ง INSERT แบบสอบถามเพื่อแทรกระเบียนลงในตาราง -
mysql> INSERT ลงในค่า ExistsRowDemo (100,'John');Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> INSERT เป็นค่า ExistsRowDemo (101,'Bob'); Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที )mysql> INSERT เป็นค่า ExistsRowDemo (103,'Carol');Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> INSERT เป็นค่า ExistsRowDemo (104,'David'); Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)
หลังจากแทรกระเบียนทั้งหมดแล้ว เราสามารถแสดงโดยใช้คำสั่ง SELECT ซึ่งมีดังต่อไปนี้ -
mysql> SELECT * จาก ExistsRowDemo;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+---------+-------+| ExistId | ชื่อ |+---------+-------+| 100 | จอห์น || 101 | บ๊อบ || 103 | แครอล || 104 | David |+---------+-------+4 แถวในชุด (0.00 วินาที)เราได้เพิ่มบันทึกลงในตารางแล้ว ไวยากรณ์ในการตรวจสอบว่ามีแถวอยู่ในตารางหรือไม่โดยใช้เงื่อนไข EXISTS มีดังนี้ -
SELECT EXISTS(SELECT * FROM yourTableName WHERE yourCondition);
ฉันกำลังใช้แบบสอบถามข้างต้นเพื่อให้ได้ผลลัพธ์ -
หมายเหตุ:ประการแรก ฉันกำลังพิจารณาเงื่อนไขเมื่อมีแถวอยู่ในตาราง หลังจากนั้นเงื่อนไขจะถูกกล่าวถึงเมื่อไม่มีแถว
กรณีที่ 1
ในกรณีนี้ ฉันกำลังให้เงื่อนไขเมื่อมีแถวอยู่ ให้เรานำไวยากรณ์ข้างต้นไปทดสอบว่ามีแถวหรือไม่
mysql> SELECT EXISTS (เลือก * จาก ExistsRowDemo โดยที่ ExistId=104);
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อน>+--------------------------------------------- --------+| EXISTS(เลือก * จาก ExistsRowDemo WHERE ExistId=104)|+------------------------------------------ ------------------|| 1 |+--------------------------------------------- --------+1 แถวในชุด (0.00 วินาที)จากผลลัพธ์ตัวอย่างด้านบน จะเห็นได้ชัดว่ามีแถวอยู่ เนื่องจากค่าที่เราได้รับคือ 1 ซึ่งหมายความว่า TRUE!
กรณีที่ 2
ในกรณีนี้ ฉันกำลังอธิบายเงื่อนไขเมื่อแถวไม่มีอยู่ กำลังใช้การสืบค้นด้านบน
mysql> SELECT EXISTS (เลือก * จาก ExistsRowDemo โดยที่ ExistId=105);
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อน>+--------------------------------------------- --------+| EXISTS(เลือก * จาก ExistsRowDemo โดยที่ ExistId=105)|+--------------------------------------------- ------------------|| 0 |+---------------------------------------------------------- --------+1 แถวในชุด (0.00 วินาที)จากผลลัพธ์ข้างต้น เราจะเห็นผลลัพธ์เป็น 0 นั่นคือ เท็จ (ไม่มีแถว)