एक ही क्वेरी में बूलियन फ़ील्ड मानों की गणना करने के लिए, आप CASE कथन का उपयोग कर सकते हैं। आइए अपने उदाहरण के लिए एक डेमो टेबल बनाएं -
mysql> टेबल काउंट बनाएंBooleanFieldDemo -> (-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentFirstName varchar(20), -> isPassed tinyint(1) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.63 सेकंड)
इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें।
क्वेरी इस प्रकार है -
mysql> countBooleanFieldDemo(StudentFirstName,isPassed) मान ('लैरी',0) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) mysql> countBooleanFieldDemo (StudentFirstName, isPassed) मान ('माइक', 1) में डालें;क्वेरी ओके, 1 पंक्ति प्रभावित (0.17 सेकंड)mysql> countBooleanFieldDemo(StudentFirstName,isPassed) value('Sam',0) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.21 सेकंड) mysql> countBooleanFieldDemo(StudentFirstName,isPassed) में डालें मान ('कैरोल', 1); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड) mysql> countBooleanFieldDemo (StudentFirstName, isPassed) मानों में डालें ('बॉब', 1); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड) mysql> countBooleanFieldDemo (StudentFirstName, isPassed) मानों ('डेविड', 1) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.13 सेकंड) mysql> countBooleanFieldDemo (StudentFirstName, isPassed) मानों में डालें ('रामित', 0); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.28 सेकंड) mysql> countBooleanFieldDemo (StudentFirstName, isPassed) मानों में डालें ('क्रिस', 1); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.20 सेकंड) mysql> countBooleanF में डालें ieldDemo(StudentFirstName,isPassed) मान ('रॉबर्ट',1);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें।
क्वेरी इस प्रकार है -
mysql> countBooleanFieldDemo से *चुनें;
यहाँ आउटपुट है -
<पूर्व>+----------+---------------------+----------+| छात्र आईडी | स्टूडेंटफर्स्टनाम | पास है |+----------+---------------------+----------+| 1 | लैरी | 0 || 2 | माइक | 1 || 3 | सैम | 0 || 4 | कैरल | 1 || 5 | बॉब | 1 || 6 | डेविड | 1 || 7 | रामित | 0 || 8 | क्रिस | 1 || 9 | रॉबर्ट | 1 |+----------+---------------------+----------+9 पंक्तियाँ सेट में ( 0.00 सेकंड)यहाँ एक ही क्वेरी के भीतर बूलियन फ़ील्ड मानों की गणना करने की क्वेरी है -
mysql> योग का चयन करें (isPassed=1) `True` के रूप में, योग(isPassed =0) `False` के रूप में, -> ( -> मामला जब sum(isPassed =1)> 0 तब sum(isPassed =0) / योग(isPassed =1) -> अंत -> ) TotalPercentage के रूप में -> countBooleanFieldDemo से;
निम्न आउटपुट है -
<पूर्व>+----------+----------+---------------------+| सच | झूठा | कुल प्रतिशत |+------+----------+-----------------+| 6 | 3 | 0.5000 |+------+----------+---------------------+1 पंक्ति सेट में (0.00 सेकंड)