MySQL أي وجميع المشغلين
عملاء MySQL أي وجميع المشغلين
تسمح لك عوامل التشغيل ANY
and ALL
بإجراء مقارنة بين قيمة عمود واحد ونطاق من القيم الأخرى.
أي مشغل
المشغل ANY
:
- تُرجع قيمة منطقية كنتيجة لذلك
- إرجاع TRUE إذا كانت أي من قيم الاستعلام الفرعي تفي بالشرط
ANY
يعني أن الشرط سيكون صحيحًا إذا كانت العملية صحيحة لأي من القيم الموجودة في النطاق.
أي بناء جملة
SELECT column_name(s)
FROM table_name
WHERE
column_name operator ANY
(SELECT column_name
FROM table_name
WHERE
condition);
ملاحظة: يجب أن يكون عامل التشغيل عامل مقارنة قياسي (= ، <> ،! = ،> ،> = ، <، أو <=).
مشغل ALL
المشغل ALL
:
- تُرجع قيمة منطقية كنتيجة لذلك
- إرجاع TRUE إذا كانت كافة قيم الاستعلام الفرعي تفي بالشرط
- تستخدم مع
SELECT
وWHERE
وHAVING
العبارات
ALL
يعني أن الشرط سيكون صحيحًا فقط إذا كانت العملية صحيحة لجميع القيم في النطاق.
كل بناء الجملة مع التحديد
SELECT ALL column_name(s)
FROM table_name
WHERE
condition;
كل بناء الجملة مع المكان أو وجود
SELECT column_name(s)
FROM table_name
WHERE
column_name operator ALL
(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 |
6 | Grandma's Boysenberry Spread | 3 | 2 | 12 - 8 oz jars | 25 |
7 | Uncle Bob's Organic Dried Pears | 3 | 7 | 12 - 1 lb pkgs. | 30 |
8 | Northwoods Cranberry Sauce | 3 | 2 | 12 - 12 oz jars | 40 |
9 | Mishi Kobe Niku | 4 | 6 | 18 - 500 g pkgs. | 97 |
واختيار من جدول "تفاصيل الطلب" :
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
6 | 10250 | 41 | 10 |
7 | 10250 | 51 | 35 |
8 | 10250 | 65 | 15 |
9 | 10251 | 22 | 6 |
10 | 10251 | 57 | 15 |
SQL أي أمثلة
تسرد عبارة SQL التالية اسم المنتج إذا وجدت أن أي سجلات في جدول OrderDetails تحتوي على كمية تساوي 10 (سيعود هذا إلى TRUE لأن عمود الكمية يحتوي على بعض القيم من 10):
مثال
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10);
تسرد جملة SQL التالية اسم المنتج إذا وجدت أن أي سجلات في جدول OrderDetails تحتوي على كمية أكبر من 99 (سيعود هذا إلى TRUE لأن عمود الكمية يحتوي على بعض القيم الأكبر من 99):
مثال
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 99);
تسرد جملة SQL التالية اسم المنتج إذا وجدت أن أي سجلات في جدول OrderDetails تحتوي على كمية أكبر من 1000 (سيؤدي هذا إلى إرجاع FALSE لأن عمود الكمية لا يحتوي على قيم أكبر من 1000):
مثال
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 1000);
أمثلة SQL ALL
تسرد عبارة SQL التالية جميع أسماء المنتجات:
مثال
SELECT ALL ProductName
FROM Products
WHERE TRUE;
تسرد جملة SQL التالية اسم المنتج إذا كانت كل السجلات في جدول OrderDetails تحتوي على كمية تساوي 10. وهذا بالطبع سيعيد FALSE لأن عمود الكمية يحتوي على العديد من القيم المختلفة (وليس فقط قيمة 10):
مثال
SELECT ProductName
FROM Products
WHERE ProductID = ALL
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10);