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

MySQL में BETWEEN का उपयोग करके एकाधिक इनपुट्स के लिए मान प्रदर्शित करने का सिंगल क्वेरी

MySQL में BETWEEN ऑपरेटर का उपयोग करके रेंज क्वेरी

BETWEEN ऑपरेटर आपको एक समावेशी रेंज में मानों का चयन करने की अनुमति देता है। यह कई OR शर्तों या IN() सूची लिखने की तुलना में संख्यात्मक या तिथि रेंज के लिए अधिक संक्षिप्त और पठनीय है।

टेबल बनाना

mysql> CREATE TABLE DemoTable1537 (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.72 sec)

डेटा डालना

mysql> INSERT INTO DemoTable1537(StudentName) VALUES ('Chris');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable1537(StudentName) VALUES ('Bob');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable1537(StudentName) VALUES ('Sam');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable1537(StudentName) VALUES ('Mike');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable1537(StudentName) VALUES ('David');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable1537(StudentName) VALUES ('John');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable1537(StudentName) VALUES ('Carol');
Query OK, 1 row affected (0.12 sec)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable1537;
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|         1 | Chris       |
|         2 | Bob         |
|         3 | Sam         |
|         4 | Mike        |
|         5 | David       |
|         6 | John        |
|         7 | Carol       |
+-----------+-------------+
7 rows in set (0.00 sec)

BETWEEN का उपयोग करके रेंज क्वेरी (ID 3 से 6 तक)

mysql> SELECT StudentName FROM DemoTable1537 
    -> WHERE StudentId BETWEEN 3 AND 6;

परिणाम

+-------------+
| StudentName |
+-------------+
| Sam         |
| Mike        |
| David       |
| John        |
+-------------+
4 rows in set (0.00 sec)

BETWEEN की मुख्य विशेषताएं

  • समावेशी: दोनों अंत मान शामिल हैं (3 और 6 दोनों शामिल)
  • क्रम महत्वपूर्ण है: BETWEEN low AND high - low, high से कम या बराबर होना चाहिए
  • डेटा प्रकार: संख्या, तिथि, स्ट्रिंग (वर्णानुक्रम क्रम) के साथ काम करता है

समतुल्य WHERE क्लॉज

-- ये समान हैं:
WHERE StudentId BETWEEN 3 AND 6
WHERE StudentId >= 3 AND StudentId <= 6

तिथियों के साथ BETWEEN

SELECT * FROM Orders 
WHERE OrderDate BETWEEN '2024-01-01' AND '2024-12-31';

स्ट्रिंग्स के साथ BETWEEN (वर्णानुक्रम)

SELECT * FROM Products 
WHERE ProductName BETWEEN 'A' AND 'M';  -- A से M तक के नाम

NOT BETWEEN

SELECT * FROM DemoTable1537 
WHERE StudentId NOT BETWEEN 3 AND 6;  -- 1,2,7 लौटाएगा

प्रदर्शन युक्ति

BETWEEN कॉलम पर इंडेक्स का उपयोग कर सकता है। बड़े टेबल्स पर रेंज क्वेरी के लिए, सुनिश्चित करें कि फ़िल्टर किए गए कॉलम पर इंडेक्स है:

CREATE INDEX idx_student_id ON DemoTable1537(StudentId);

सावधानी: तिथि/समय के साथ BETWEEN

-- यदि OrderDate DATETIME है:
WHERE OrderDate BETWEEN '2024-01-01' AND '2024-01-31'
-- '2024-01-31 14:30:00' को बाहर कर देगा क्योंकि '2024-01-31' का अर्थ '2024-01-31 00:00:00' है

-- बेहतर:
WHERE OrderDate >= '2024-01-01' AND OrderDate < '2024-02-01'
  1. - MySQL में CASE स्टेटमेंट से एक क्वेरी में कई आइटम की कीमत बढ़ाएं

    MySQL में CASE स्टेटमेंट का उपयोग करके एक ही UPDATE क्वेरी में विभिन्न उत्पादों की कीमतें अलग-अलग प्रतिशत से बढ़ा सकते हैं। उदाहरण: उत्पाद कीमतों को अलग-अलग प्रतिशत से बढ़ाना 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable VALUES(Product-3, 3000); 3. वर्तमान कीमतें देखें SELECT * FROM De

  1. - विशिष्ट कॉलम मानों के लिए एकल MySQL क्वेरी में एकाधिक काउंट प्राप्त करें

    इसके लिए, आप विशिष्ट कॉलम के लिए पैरामीटर मान के साथ एग्रीगेट फंक्शन SUM() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1790 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int ); Query OK, 0 rows affected (0.94 sec) इन्सर्ट कमा

  1. - एकल MySQL क्वेरी में एक कॉलम में एकाधिक मान कैसे डालें?

    सिंटैक्स एक कॉलम में एकाधिक मान डालने के लिए, निम्नलिखित सिंटैक्स का उपयोग करें: INSERT INTO yourTableName VALUES (yourValue1), (yourValue2), ... (yourValueN); उदाहरण सबसे पहले एक टेबल बनाते हैं: ); अब INSERT कमांड का उपयोग करके रिकॉर्ड डालें: INSERT INTO DemoTable2022 VALUES (Computer Science)