ตัวดำเนินการ MySQL EXISTS
ตัวดำเนินการ MySQL EXISTS
ตัวEXISTS
ดำเนินการใช้เพื่อทดสอบการมีอยู่ของเร็กคอร์ดใดๆ ในเคียวรีย่อย
ตัวEXISTS
ดำเนินการส่งคืน TRUE ถ้าแบบสอบถามย่อยส่งกลับอย่างน้อยหนึ่งระเบียน
EXISTS ไวยากรณ์
SELECT column_name(s)
FROM table_name
WHERE
EXISTS
(SELECT column_name FROM table_name WHERE
condition);
ฐานข้อมูลสาธิต
ด้านล่างนี้คือการเลือกจากตาราง "ผลิตภัณฑ์" ในฐานข้อมูลตัวอย่าง Northwind:
ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
---|---|---|---|---|---|
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
และการเลือกจากตาราง "ซัพพลายเออร์":
SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
4 | Tokyo Traders | Yoshi Nagase | 9-8 Sekimai Musashino-shi | Tokyo | 100 | Japan |
MySQL EXISTS ตัวอย่าง
คำสั่ง SQL ต่อไปนี้คืนค่า TRUE และแสดงรายการซัพพลายเออร์ที่มีราคาสินค้าน้อยกว่า 20:
ตัวอย่าง
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM
Products WHERE Products.SupplierID = Suppliers.supplierID AND Price < 20);
คำสั่ง SQL ต่อไปนี้จะคืนค่า TRUE และแสดงรายการซัพพลายเออร์ที่มีราคาผลิตภัณฑ์เท่ากับ 22:
ตัวอย่าง
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM
Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22);