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

MySQL में कॉलम नाम के बिना कॉलम स्थिति द्वारा ORDER BY करें

MySQL में ORDER BY क्लॉज में कॉलम नाम के बजाय **कॉलम स्थिति (पोजिशनल नंबर)** का उपयोग करके परिणामों को क्रमबद्ध किया जा सकता है। यह तब उपयोगी होता है जब कॉलम नाम लंबे, जटिल, या डायनामिक हों, या SELECT * उपयोग कर रहे हों।

सिंटैक्स

SELECT * FROM table_name ORDER BY column_position [ASC|DESC] [LIMIT n];
  • column_position: SELECT सूची में कॉलम की 1-आधारित स्थिति
  • 1 = पहला कॉलम, 2 = दूसरा कॉलम, आदि

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

टेबल बनाएं:

mysql> CREATE TABLE DemoTable1325 (Id INT, Name VARCHAR(20));

डेटा डालें:

mysql> INSERT INTO DemoTable1325 VALUES(100, 'Chris');
mysql> INSERT INTO DemoTable1325 VALUES(101, 'Bob');
mysql> INSERT INTO DemoTable1325 VALUES(120, 'David');
mysql> INSERT INTO DemoTable1325 VALUES(115, 'Sam');
mysql> INSERT INTO DemoTable1325 VALUES(130, 'Carol');
mysql> INSERT INTO DemoTable1325 VALUES(150, 'Mike');

डेटा देखें:

mysql> SELECT * FROM DemoTable1325;
+------+-------+
| Id   | Name  |
+------+-------+
| 100  | Chris |
| 101  | Bob   |
| 120  | David |
| 115  | Sam   |
| 130  | Carol |
| 150  | Mike  |
+------+-------+

पहले कॉलम (Id) द्वारा अवरोही क्रम, शीर्ष 4

mysql> SELECT * FROM DemoTable1325 ORDER BY 1 DESC LIMIT 4;

परिणाम

+------+-------+
| Id   | Name  |
+------+-------+
| 150  | Mike  |
| 130  | Carol |
| 120  | David |
| 115  | Sam   |
+------+-------+

व्याख्या

  • ORDER BY 1 का अर्थ है SELECT सूची का **पहला कॉलम** (Id)
  • DESC अवरोही क्रम (बड़े से छोटे)
  • LIMIT 4 केवल शीर्ष 4 पंक्तियां लौटाता है

दूसरे कॉलम द्वारा क्रमबद्ध करें

SELECT * FROM DemoTable1325 ORDER BY 2;  -- Name द्वारा आरोही
SELECT * FROM DemoTable1325 ORDER BY 2 DESC;  -- Name द्वारा अवरोही

एक्सप्रेशन/गणना कॉलम द्वारा क्रमबद्ध करें

SELECT Id, Name, (Id * 2) AS DoubleId FROM DemoTable1325 ORDER BY 3;

तीसरा कॉलम (DoubleId) गणना किया गया है, फिर भी स्थिति 3 से क्रमबद्ध होता है।

लाभ

  • संक्षिप्त: लंबे कॉलम नाम/एलियास टाइप करने की आवश्यकता नहीं
  • SELECT * के साथ काम करता है: कॉलम नाम जाने बिना क्रमबद्ध करें
  • एलियास/एक्सप्रेशन कॉलम पर भी काम करता है

नुकसान और चेतावनियां

सर्वोत्तम अभ्यास

  • उत्पादन कोड: हमेशा स्पष्ट कॉलम नाम या एलियास उपयोग करें
  • तदर्थ/इंटरएक्टिव: त्वरित परीक्षण के लिए स्थिति संख्या स्वीकार्य
  • व्यू/स्टोर्ड प्रोसीजर: कभी भी स्थिति संख्या न उपयोग करें

मानक-संगत विकल्प

SELECT Id, Name FROM DemoTable1325 ORDER BY Id DESC LIMIT 4;

पोजिशनल ORDER BY MySQL-विशिष्ट सुविधा है जो तदर्थ क्वेरी के लिए सुविधाजनक है, लेकिन उत्पादन कोड में स्पष्ट कॉलम नाम पसंद किए जाने चाहिए।

  1. - MySQL में पहले अक्षर के आधार पर ORDER BY कैसे करें?

    परिचय MySQL में किसी कॉलम के पहले अक्षर के आधार पर रिकॉर्ड्स को क्रमबद्ध करने के लिए ORDER BY CASE स्टेटमेंट का उपयोग किया जाता है। यह तब उपयोगी होता है जब आपको किसी विशेष अक्षर से शुरू होने वाले रिकॉर्ड्स को प्राथमिकता देनी हो। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (2.26 s

  1. - MySQL में क्वेरी परिणामों को रैंडम क्रम में ऑर्डर करना और रैंडम पंक्तियां चुनना

    परिचय MySQL में ORDER BY RAND() का उपयोग करके क्वेरी परिणामों को यादृच्छिक (रैंडम) क्रम में क्रमबद्ध किया जा सकता है। LIMIT के साथ संयोजित करके रैंडम नमूना (random sample) प्राप्त किया जा सकता है। सिंटैक्स SELECT * FROM table_name WHERE column_name IN (value1, value2, ...) ORDER BY RAND() LIMIT lim

  1. - MySQL में परिणाम समूहित करें और सूची में दिखाएं

    समाधान GROUP BY के साथ ORDER BY का उपयोग करके गणना और क्रमबद्ध करें। सिंटैक्स SELECT yourColumnName, COUNT(*) AS aliasName FROM yourTableName GROUP BY yourColumnName ORDER BY yourColumnName; उदाहरण टेबल बनाएं: INSERT INTO demo7 (first_name) VALUES (John), (David), (John), (Bob), (David), (David),

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
समस्याविवरण
भंगुरताSELECT सूची बदलने पर क्रमबद्धता टूट जाती है
पठनीयताकोड पढ़ने वाला नहीं जानता कौन सा कॉलम उपयोग हो रहा है
रखरखावकॉलम जोड़ने/हटाने से गलत क्रमबद्धता हो सकती है
SQL मानककुछ डेटाबेस (PostgreSQL, SQL Server) स्थिति क्रमबद्धता का समर्थन नहीं करते