Free tutorials & notes in Hindi & English · Clean code examples · Mobile friendly learning
MySQL + SQL · Lesson 75

ANY और ALL Operators

ANY = कम-से-कम One; ALL = Every

ANY और ALL one scalar expression को one-column subquery से compare करते हैं। SOME, ANY का synonym है।

ExpressionQuestion
x > ANY(set)क्या x कम-से-कम one value से बड़ा है?
x > ALL(set)क्या x हर value से बड़ा है?
x = ANY(set)क्या x member है? IN के equivalent
x <> ALL(set)क्या x हर value से different है? NOT IN से related
ANY का अर्थ “कोई arbitrary one value” नहीं। इसका अर्थ comparison कम-से-कम one member पर सफल है।

Verified Comparison Set

Shared sq_students table में X-A के known marks 86.50 और 91.00 हैं। X-B में 74.00, 88.50 और NULL है। Known marks की requirement में examples NULL explicitly filter करते हैं।

SELECT marks
FROM sq_students
WHERE class_name = 'X-A'
  AND marks IS NOT NULL;
86.50 91.00

किसी भी X-A Mark से Greater

SELECT student_name, marks
FROM sq_students
WHERE marks > ANY (
  SELECT marks
  FROM sq_students
  WHERE class_name = 'X-A'
    AND marks IS NOT NULL
)
ORDER BY marks DESC;
Meera | 91.00 Sana | 88.50

Meera 86.50 से greater है; Sana भी 86.50 से greater है। Aarav lower member के equal है, exceed नहीं करता। Kabir दोनों से lower और Vihaan की outer comparison UNKNOWN है।

हर X-B Known Mark से Greater

SELECT student_name, marks
FROM sq_students
WHERE marks > ALL (
  SELECT marks
  FROM sq_students
  WHERE class_name = 'X-B'
    AND marks IS NOT NULL
)
ORDER BY student_id;
Meera | 91.00

Known X-B maximum 88.50 है। Meera 74.00 और 88.50 दोनों से अधिक है। Sana 88.50 के equal है, इसलिए strict greater-than fail है।

IN, MIN और MAX से Relation

-- Equivalent membership forms:
WHERE class_name = ANY (
  SELECT class_name FROM allowed_classes
)

WHERE class_name IN (
  SELECT class_name FROM allowed_classes
)

Non-empty, NULL-free numeric set पर x > ANY(set), x > MIN(set) जैसा और x > ALL(set), x > MAX(set) जैसा behave करता है। Empty या NULL-containing sets पर automatically equivalent नहीं; slogan नहीं, business rule encode करें।

Empty Sets और NULL Values

  • Ordinary non-NULL comparison में empty result पर ANY FALSE है।
  • Empty result पर ALL TRUE है—कोई row condition disprove नहीं करती।
  • Comparisons में NULL हो और कोई TRUE/FALSE result predicate settle न करे तो outcome UNKNOWN हो सकता है।
  • WHERE केवल TRUE रखता है, FALSE या UNKNOWN नहीं।
-- केवल known marks:
WHERE marks > ALL (
  SELECT marks
  FROM sq_students
  WHERE class_name = 'X-B'
    AND marks IS NOT NULL
)
IS NOT NULL हटाने से logical domain बदलता है। ऐसा तभी करें जब unknown marks intentionally rule का part हों।

Restrictions, Debugging और अभ्यास

expr op {ANY|ALL|SOME} subquery में MySQL scalar expression और one-column subquery expect करता है। Multi-column row comparison इन operators में वैसे supported नहीं जैसे IN के साथ row constructors हैं।

  1. Subquery चलाकर min, max, NULL count और row count लिखें।
  2. Quantifier को plain language में translate करें।
  3. Boundary equality test करें, केवल above/below नहीं।
  4. Empty और NULL-containing sets test करें।
  5. Correctness के बाद EXPLAIN लें।

अभ्यास: ANY X-A mark से lower scores; ALL X-A marks से lower scores; = ANY को IN में rewrite; inner class missing होने पर result explain करें।

Official संदर्भ

Syntax और behavior official MySQL 8.4 manual से जाँचे गए हैं। Production से पहले हर query disposable copy पर test करें।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Greater than ANY का अर्थ क्या है?
Subquery result की कम-से-कम one non-UNKNOWN comparison के लिए value greater हो तो TRUE है।
Greater than ALL का अर्थ क्या है?
Value subquery की हर returned value से greater हो तभी TRUE है, SQL NULL और empty-set rules के अधीन।
क्या MySQL में SOME, ANY से अलग है?
नहीं। SOME, ANY का synonym है।
क्या equals ANY और IN same हैं?
Supported scalar column-subquery form में = ANY, IN के equivalent है।
क्या greater than ALL को greater than MAX से replace कर सकते हैं?
NULL और empty-set semantics handle करने के बाद ही। Empty set पर normal ALL comparison TRUE, जबकि empty MAX NULL होता है।
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.