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

MySQL में न्यूनतम मान (MIN) वाली रो कैसे चुनें: सबक्वेरी के साथ

MySQL में MIN() एग्रीगेट फंक्शन और सबक्वेरी से न्यूनतम मान वाली पूरी रो प्राप्त करना

सिंटैक्स:

SELECT * FROM yourTableName 
WHERE yourColumnName = (SELECT MIN(yourColumnName) FROM yourTableName);

व्यावहारिक उदाहरण

1. टेबल बनाएं:

mysql> CREATE TABLE MinValueDemo (
    -> ProductId INT,
    -> ProductName VARCHAR(100),
    -> ProductPrice INT
    -> ); 
Query OK, 0 rows affected (0.77 sec)

2. उत्पाद डेटा डालें:

mysql> INSERT INTO MinValueDemo VALUES(1,'product-1',4500);
mysql> INSERT INTO MinValueDemo VALUES(2,'product-2',4340);
mysql> INSERT INTO MinValueDemo VALUES(3,'product-3',4110);
mysql> INSERT INTO MinValueDemo VALUES(4,'product-4',4344);
mysql> INSERT INTO MinValueDemo VALUES(5,'product-5',4103);

3. सभी रिकॉर्ड:

+-----------+-------------+--------------+ 
| ProductId | ProductName | ProductPrice | 
+-----------+-------------+--------------+ 
| 1         | product-1   | 4500         | 
| 2         | product-2   | 4340         | 
| 3         | product-3   | 4110         | 
| 4         | product-4   | 4344         | 
| 5         | product-5   | 4103         | 
+-----------+-------------+--------------+ 
5 rows in set (0.00 sec)

4. न्यूनतम कीमत वाला उत्पाद खोजें:

mysql> SELECT * FROM MinValueDemo 
    -> WHERE ProductPrice = (SELECT MIN(ProductPrice) FROM MinValueDemo);
+-----------+-------------+--------------+ 
| ProductId | ProductName | ProductPrice | 
+-----------+-------------+--------------+ 
| 5         | product-5   | 4103         | 
+-----------+-------------+--------------+ 
1 row in set (0.08 sec)

वैकल्पिक तरीके:

तरीका 2: ORDER BY LIMIT 1 (सरल, पूरी रो देता है):

SELECT * FROM MinValueDemo ORDER BY ProductPrice ASC LIMIT 1;

तरीका 3: JOIN के साथ (बड़े टेबल के लिए बेहतर प्रदर्शन):

SELECT m.* FROM MinValueDemo m
JOIN (SELECT MIN(ProductPrice) AS min_price FROM MinValueDemo) sub
ON m.ProductPrice = sub.min_price;

तरीका 4: केवल न्यूनतम मान चाहिए:

SELECT MIN(ProductPrice) FROM MinValueDemo;

तुलना:

तरीकाफायदेनुकसान
सबक्वेरी WHERE =मानक SQL, स्पष्ट इरादादो बार स्कैन हो सकता है
ORDER BY LIMIT 1सरल, इंडेक्स उपयोग कर सकता हैटाई होने पर केवल एक रो
JOINबड़े टेबल पर बेहतर प्रदर्शनअधिक वर्बोज

नोट:

  • अगर न्यूनतम मान वाली एकाधिक पंक्तियां हैं, तो सभी लौटाई जाएंगी
  • MIN() NULL मानों को अनदेखा करता है
  • इंडेक्स होने पर ORDER BY LIMIT 1 सबसे तेज होता है
  1. - MySQL SELECT में फ़ील्ड कैसे उत्पन्न करें?

    इसके लिए कीवर्ड AS का उपयोग करें। आइए पहले एक टेबल बनाते हैं: CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20) ); टेबल में कुछ रिकॉर्ड डालें: INSERT INTO DemoTable(Name) VALUES(David); टेबल से सभी रिकॉर्ड प्रदर्शित करें: SELECT * FROM DemoTable; आउटपुट

  1. - MySQL में ALTER TABLE MODIFY DEFAULT का उपयोग करके डिफ़ॉल्ट फ़ील्ड मान सेट करना

    MySQL में मौजूदा कॉलम के लिए ALTER TABLE ... MODIFY का उपयोग करके डिफ़ॉल्ट मान सेट करें। उदाहरण: टेबल बनाना mysql> CREATE TABLE DemoTable ( -> Age INT -> ); Query OK, 0 rows affected (0.58 sec) डिफ़ॉल्ट मान सेट करना mysql> ALTER TABLE DemoTable MODIFY Age INT DEFAULT 18; Quer

  1. - MySQL में NULL मान वाले डेटा के लिए SELECT क्वेरी

    IS NULL से NULL मान वाली पंक्तियां चुनना किसी कॉलम में NULL मान वाली पंक्तियां प्राप्त करने के लिए WHERE column IS NULL का उपयोग करें। = NULL काम नहीं करता क्योंकि NULL के साथ तुलना हमेशा UNKNOWN होती है। टेबल और डेटा CREATE TABLE DemoTable ( CustomerName VARCHAR(100), CustomerCountryName