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

MySQL में AND और OR ऑपरेटर का उपयोग करके मल्टीपल रो रिकॉर्ड्स कैसे लौटाएं

AND और OR ऑपरेटर्स को मिलाकर जटिल फ़िल्टरिंग

एकाधिक शर्तों को AND और OR ऑपरेटर्स के साथ जोड़कर जटिल फ़िल्टरिंग करें। कोष्ठक () का उपयोग प्राथमिकता नियंत्रित करने के लिए करें।

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(40),
    StudentMathMarks INT,
    StudentMySQLMarks INT,
    status ENUM('ACTIVE', 'INACTIVE')
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable (StudentName, StudentMathMarks, StudentMySQLMarks, status) VALUES ('Chris', 45, 67, 'active');
mysql> INSERT INTO DemoTable (StudentName, StudentMathMarks, StudentMySQLMarks, status) VALUES ('Bob', 89, 78, 'inactive');
mysql> INSERT INTO DemoTable (StudentName, StudentMathMarks, StudentMySQLMarks, status) VALUES ('David', 56, 68, 'active');
mysql> INSERT INTO DemoTable (StudentName, StudentMathMarks, StudentMySQLMarks, status) VALUES ('Robert', 68, 75, 'active');

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+-------------+------------------+-------------------+----------+
| StudentId | StudentName | StudentMathMarks | StudentMySQLMarks | status   |
+-----------+-------------+------------------+-------------------+----------+
| 1         | Chris       | 45               | 67                | ACTIVE   |
| 2         | Bob         | 89               | 78                | INACTIVE |
| 3         | David       | 56               | 68                | ACTIVE   |
| 4         | Robert      | 68               | 75                | ACTIVE   |
+-----------+-------------+------------------+-------------------+----------+

स्टेटस 'active' हो AND (MathMarks=68 OR MySQLMarks=67) वाले रिकॉर्ड्स:

mysql> SELECT * FROM DemoTable
    WHERE status = 'active'
    AND (StudentMathMarks = 68 OR StudentMySQLMarks = 67);

आउटपुट:

+-----------+-------------+------------------+-------------------+--------+
| StudentId | StudentName | StudentMathMarks | StudentMySQLMarks | status |
+-----------+-------------+------------------+-------------------+--------+
| 1         | Chris       | 45               | 67                | ACTIVE |
| 4         | Robert      | 68               | 75                | ACTIVE |
+-----------+-------------+------------------+-------------------+--------+

व्याख्या:

  • status = 'active': केवल सक्रिय छात्र (Chris, David, Robert)
  • StudentMathMarks = 68 OR StudentMySQLMarks = 67: इनमें से कोई भी शर्त पूरी हो
    • Chris: MySQLMarks=67 ✓
    • David: MathMarks=68 ✓
    • Robert: MathMarks=68 ✓
  • AND: दोनों मुख्य शर्तें पूरी होनी चाहिए
  • परिणाम: Chris और Robert

ऑपरेटर प्राथमिकता: AND का प्रीसिडेंस OR से अधिक होता है।

-- ये समान हैं:
WHERE A AND B OR C        -- (A AND B) OR C
WHERE A AND (B OR C)      -- स्पष्ट कोष्ठक के साथ

सर्वोत्तम अभ्यास: भ्रम से बचने के लिए हमेशा कोष्ठक () का उपयोग करें।

  1. - MySQL में एक ही क्वेरी में एकाधिक रिकॉर्ड कैसे अपडेट करें?

    MySQL में UPDATE स्टेटमेंट में WHERE क्लॉज का उपयोग करके एक ही क्वेरी में एकाधिक कॉलम अपडेट किए जा सकते हैं, लेकिन एकाधिक पंक्तियों को अलग-अलग मानों से अपडेट करने के लिए CASE या एकाधिक क्वेरी की आवश्यकता होती है। उदाहरण: एक पंक्ति, एकाधिक कॉलम तालिका बनाएं: mysql> CREATE TABLE DemoTable ( -&

  1. - MySQL में एकल INSERT से एकाधिक रिकॉर्ड तेजी से डालें

    बल्क इंसर्ट सिंटैक्स से प्रदर्शन सुधारें एक ही INSERT स्टेटमेंट में कई मान सेट अल्पविराम से अलग करके डालें। सिंटैक्स: insert into yourTableName values(val1,val2,...),(val1,val2,...),...; उदाहरण: mysql> create table DemoTable2007 ( Amount1 int, Amount2 int, Amount3 int ); Query OK, 0 rows affected

  1. - MySQL में AND और OR ऑपरेटर के साथ विशिष्ट रिकॉर्ड कैसे प्राप्त करें

    उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2015 VALUES (4, Robert, US); क्वेरी StudentName=David OR (StudentCountryName=UK AND StudentId=3): WHERE StudentName = David OR StudentCountryName = UK AND StudentId = 3; परिणाम +-----------+-------------+--------------------+ | Stu