บรรลุสิ่งนี้ด้วยความช่วยเหลือของส่วนคำสั่งที่
ไวยากรณ์มีดังนี้
SELECT yourColumnName1,yourColumnName2,...N จาก yourTableNameWHERE( SELECT COUNT(*) FROM yourTableName)=2;
เพื่อให้เข้าใจแนวคิด ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้
mysql> สร้างตาราง CountWithSubqueryDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> EmployeeName varchar(20) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (2.09 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่ง insert
แบบสอบถามมีดังนี้
mysql> แทรกลงในค่า CountWithSubqueryDemo(EmployeeName) ('John');Query OK, 1 แถวได้รับผลกระทบ (0.54 วินาที)mysql> แทรกลงใน CountWithSubqueryDemo(EmployeeName) values(NULL); Query OK, 1 แถวได้รับผลกระทบ (0.36 วินาที )mysql> แทรกลงในค่า CountWithSubqueryDemo(EmployeeName) ('Carol');Query OK, 1 แถวได้รับผลกระทบ (0.23 วินาที)mysql> แทรกลงในค่า CountWithSubqueryDemo(EmployeeName) (''); Query OK, 1 แถวได้รับผลกระทบ (0.31 วินาที) mysql> แทรกลงในค่า CountWithSubqueryDemo (EmployeeName) ('Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (1.24 วินาที) mysql> แทรกลงใน CountWithSubqueryDemo (EmployeeName) ค่า (NULL); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.30 วินาที) mysql> แทรกลงในค่า CountWithSubqueryDemo(EmployeeName) ('Sam');Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงใน CountWithSubqueryDemo(EmployeeName) values('Mike');Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า CountWithSubqueryDemo(EmployeeName) ('James');Query OK, 1 แถวได้รับผลกระทบ (0.26 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select
แบบสอบถามมีดังนี้
mysql> เลือก *จาก CountWithSubqueryDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+----+--------------+| รหัส | ชื่อพนักงาน |+----+-------------+| 1 | จอห์น || 2 | NULL || 3 | แครอล || 4 | || 5 | บ๊อบ || 6 | NULL || 7 | แซม || 8 | ไมค์ || 9 | James |+----+-------------+9 แถวในชุด (0.19 วินาที)ต่อไปนี้คือวิธีที่คุณสามารถใช้การนับแถวจริงในส่วนคำสั่ง
mysql> select Id,EmployeeName from CountWithSubqueryDemo -> where -> ( -> select count(*) from CountWithSubqueryDemo -> )=2;Empty set (0.03 วินาที)
ในแบบสอบถามข้างต้น เราได้รับชุดว่างเนื่องจากจะส่งคืนแถวหากตารางมีเพียงสองระเบียนเท่านั้น ดังนั้น ให้เราลบระเบียนทั้งหมดออกจากตารางและแทรกระเบียน 2 รายการลงในตาราง
แบบสอบถามมีดังนี้
mysql> ตัดทอนตาราง CountWithSubqueryDemo; Query OK, 0 แถวได้รับผลกระทบ (1.95 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่ง insert
แบบสอบถามมีดังนี้
mysql> แทรกลงในค่า CountWithSubqueryDemo(EmployeeName) ('James');Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงใน CountWithSubqueryDemo(EmployeeName) values(NULL); Query OK, 1 แถวได้รับผลกระทบ (0.46 วินาที) )
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select
แบบสอบถามมีดังนี้
mysql> เลือก *จาก CountWithSubqueryDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+----+--------------+| รหัส | ชื่อพนักงาน |+----+-------------+| 1 | เจมส์ || 2 | NULL |+----+------------+2 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นแบบสอบถามสำหรับการนับแถวในส่วนที่ข้อ
mysql> เลือก Id,EmployeeName จาก CountWithSubqueryDemo -> โดยที่ -> ( -> เลือก count(*) จาก CountWithSubqueryDemo -> )=2;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+----+--------------+| รหัส | ชื่อพนักงาน |+----+-------------+| 1 | เจมส์ || 2 | NULL |+----+------------+2 แถวในชุด (0.00 วินาที)