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

क्या MySQL में रिकॉर्ड को आरोही और अवरोही क्रम में विभाजित करके वैकल्पिक रूप से प्रदर्शित करना संभव है?

हां, MySQL में आप मध्य मान की गणना करके और कस्टम क्रमबद्ध तर्क का उपयोग करके रिकॉर्ड को वैकल्पिक आरोही/अवरोही क्रम में प्रदर्शित कर सकते हैं (जैसे: 1, 10, 2, 9, 3, 8...)

उदाहरण तालिका बनाना

mysql> CREATE TABLE DemoTable (
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);

mysql> INSERT INTO DemoTable VALUES (), (), (), (), (), (), (), (), (), ();

सभी रिकॉर्ड देखना (1 से 10)

mysql> SELECT * FROM DemoTable;

आउटपुट:

+--------+
| UserId |
+--------+
| 1      |
| 2      |
| 3      |
| 4      |
| 5      |
| 6      |
| 7      |
| 8      |
| 9      |
| 10     |
+--------+

मध्य मान की गणना करना

mysql> SET @middleValue = (SELECT MAX(UserId) FROM DemoTable) / 2;

वैकल्पिक क्रम में परिणाम प्राप्त करना

mysql> SELECT * FROM DemoTable 
    -> ORDER BY (IF(UserId < @middleValue, @middleValue*2 - UserId, UserId - 1)) DESC, UserId ASC;

आउटपुट:

+--------+
| UserId |
+--------+
| 1      |
| 10     |
| 2      |
| 9      |
| 3      |
| 8      |
| 4      |
| 7      |
| 6      |
| 5      |
+--------+

व्याख्या: क्वेरी मध्य मान (5) की गणना करती है। फिर ORDER BY में एक सूत्र का उपयोग करती है जो मानों को इस तरह मैप करता है कि वे वैकल्पिक क्रम में क्रमबद्ध हों। पहले आधे मानों (1-5) के लिए: 10 - UserId देता है 9,8,7,6,5। दूसरे आधे (6-10) के लिए: UserId - 1 देता है 5,6,7,8,9। DESC क्रमबद्ध करके यह वैकल्पिक पैटर्न बनाता है।

नोट: यह तकनीक क्रमिक पूर्णांक ID के साथ सबसे अच्छा काम करती है। गैर-क्रमिक या गैर-संख्यात्मक डेटा के लिए अलग दृष्टिकोण की आवश्यकता होगी।

  1. - MySQL में GROUP BY HAVING से डुप्लिकेट कॉलम मान खोजें और प्रदर्शित करें

    किसी कॉलम में डुप्लिकेट मान (एक से अधिक बार आने वाले) खोजने के लिए GROUP BY और 1 का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1858 (ModelNumber VARCHAR(50)); डेटा डालें mysql> INSERT INTO DemoTable1858 VALUES(Audi A4), (Audi A6), (Audi A4), (Audi Q5), (Audi R8), (Audi Q5); डुप्लि

  1. - MySQL में ORDER BY ASC के साथ NULL मानों को नीचे कैसे दिखाएं?

    MySQL में ORDER BY ASC डिफ़ॉल्ट रूप से NULL मानों को पहले रखता है। NULL मानों को अंत में (नीचे) रखते हुए आरोही क्रम बनाए रखने के लिए, CASE स्टेटमेंट या IS NULL चेक के साथ कस्टम सॉर्टिंग लागू करें। उदाहरण: NULL और खाली स्ट्रिंग को नीचे रखें डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1937 (Na

  1. - MySQL में ORDER BY RAND() के साथ समूहित रिकॉर्ड रखना

    परिचय MySQL में ORDER BY RAND() का उपयोग करके रैंडम क्रम में पंक्तियाँ प्राप्त की जा सकती हैं। यदि डुप्लिकेट मानों को एक साथ समूहित रखते हुए रैंडम क्रम चाहिए, तो एक्सप्रेशन RAND(कॉलम * स्थिरांक * RAND()) का उपयोग किया जा सकता है। टेबल निर्माण और डेटा सम्मिलन insert into DemoTable(StudentMarks) val