Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL: 4 में से 3 एक्सप्रेशन मैच करने वाले रिजल्ट कैसे पाएं?

MySQL में कई शर्तों में से कुछ (जैसे 4 में से 3) मैच करने वाले रिकॉर्ड पाने के लिए CASE स्टेटमेंट का उपयोग करके प्रत्येक शर्त के लिए 1 या 0 जोड़ सकते हैं।

सिंटैक्स

SELECT * FROM yourTableName 
WHERE (CASE WHEN condition1 THEN 1 ELSE 0 END) +
      (CASE WHEN condition2 THEN 1 ELSE 0 END) +
      (CASE WHEN condition3 THEN 1 ELSE 0 END) +
      (CASE WHEN condition4 THEN 1 ELSE 0 END) >= 3;

उदाहरण के साथ समझें

टेबल बनाएं:

CREATE TABLE UserInformation (
    Id INT NOT NULL AUTO_INCREMENT,
    FirstName VARCHAR(20),
    LastName VARCHAR(20),
    Age INT,
    Marks INT,
    PRIMARY KEY(Id)
);

रिकॉर्ड डालें:

INSERT INTO UserInformation(FirstName, LastName, Age, Marks) VALUES('John', 'Smith', 22, 89);
INSERT INTO UserInformation(FirstName, LastName, Age, Marks) VALUES('Carol', 'Taylor', 21, 80);
INSERT INTO UserInformation(FirstName, LastName, Age, Marks) VALUES('John', 'Doe', 24, 81);
INSERT INTO UserInformation(FirstName, LastName, Age, Marks) VALUES('David', 'Miller', 29, 99);
INSERT INTO UserInformation(FirstName, LastName, Age, Marks) VALUES('Mitchell', 'Johnson', 22, 65);

सभी रिकॉर्ड देखें:

SELECT * FROM UserInformation;

आउटपुट:

+----+-----------+----------+------+-------+
| Id | FirstName | LastName | Age  | Marks |
+----+-----------+----------+------+-------+
| 1  | John      | Smith    | 22   | 89    |
| 2  | Carol     | Taylor   | 21   | 80    |
| 3  | John      | Doe      | 24   | 81    |
| 4  | David     | Miller   | 29   | 99    |
| 5  | Mitchell  | Johnson  | 22   | 65    |
+----+-----------+----------+------+-------+

4 में से 3 शर्तें मैच करने वाला क्वेरी

शर्तें: FirstName='Mitchell', LastName='Johnson', Age=22, Marks=67

SELECT * FROM UserInformation
WHERE (CASE WHEN FirstName = 'Mitchell' THEN 1 ELSE 0 END) +
      (CASE WHEN LastName = 'Johnson' THEN 1 ELSE 0 END) +
      (CASE WHEN Age = 22 THEN 1 ELSE 0 END) +
      (CASE WHEN Marks = 67 THEN 1 ELSE 0 END) >= 3;

परिणाम:

+----+-----------+----------+------+-------+
| Id | FirstName | LastName | Age  | Marks |
+----+-----------+----------+------+-------+
| 5  | Mitchell  | Johnson  | 22   | 65    |
+----+-----------+----------+------+-------+

व्याख्या

  • रिकॉर्ड 5: Mitchell (1) + Johnson (1) + Age 22 (1) + Marks 67 (0) = 3 ✓
  • अन्य रिकॉर्ड: अधिकतम 2 शर्तें मैच करती हैं
  • यह तकनीक "फज़ी मैचिंग" या "पार्शियल मैचिंग" के लिए उपयोगी है

बेहतर पठनीयता के लिए

SELECT *,
       (FirstName = 'Mitchell') +
       (LastName = 'Johnson') +
       (Age = 22) +
       (Marks = 67) AS match_count
FROM UserInformation
HAVING match_count >= 3;

MySQL में बूलियन अभिव्यक्ति 1 (TRUE) या 0 (FALSE) लौटाती है, इसलिए CASE की आवश्यकता नहीं।

  1. असली डायरी की तरह लॉक होने वाले 8 Android डायरी ऐप्स असली डायरी की तरह लॉक होने वाले 8 Android डायरी ऐप्स

    दैनिक डायरी बनाए रखना आपको जवाबदेह रखने में मदद करता है, और आपके स्मार्टफोन पर एक डायरी हर समय अपने साथ रखना बहुत आसान है, जब भी आपको दिन भर में बेतरतीब ढंग से इसकी आवश्यकता हो। जब आप हर दिन अपने विचारों को लिखते हैं, तो यह आपको सकारात्मक पर विचार करने में मदद करता है ताकि नकारात्मक सोच का मुकाबला

  1. क्रोमबुक पर फोटो एडिटिंग: फोटोशॉप जैसा अनुभव मुफ्त में! क्रोमबुक पर फोटो एडिटिंग: फोटोशॉप जैसा अनुभव मुफ्त में!

    क्रोमबुक शानदार मशीनें हैं। जैसे-जैसे क्रोम वेब स्टोर में ऐप्स की गुणवत्ता बेहतर हो रही है, ये आपके प्राथमिक पीसी या मैक के लगभग सभी काम करने में सक्षम होते जा रहे हैं, लेकिन लागत के एक अंश पर। उनकी सुरक्षा, उपयोग में आसानी और पोर्टेबिलिटी इन्हें स्कूलों, व्यवसायों और विश्वविद्यालय के छात्रों के लिए

  1. Windows 10 में आप जो काम कर सकते हैं लेकिन Windows 11 में नहीं Windows 10 में आप जो काम कर सकते हैं लेकिन Windows 11 में नहीं

    Windows 11 सभी के लिए उपलब्ध है और आप इसे अभी मुफ्त में प्राप्त कर सकते हैं। सभी योग्य उपयोगकर्ता जो न्यूनतम आवश्यकताओं को पूरा करते हैं, वे आसानी से Windows 11 के पूर्ण संस्करण में अपग्रेड या इंस्टॉल कर सकते हैं। Microsoft ने Windows 11 में कुछ बेहतरीन नई सुविधाओं के साथ लुक और फील को नया रूप दिया