मॉड्यूलो ऑपरेटर के साथ कस्टम सॉर्टिंग
संख्यात्मक कॉलम के मॉड्यूलस (शेष) परिणाम के आधार पर पंक्तियों को क्रमबद्ध करने के लिए ORDER BY column % divisor का उपयोग करें।
टेबल और डेटा
mysql> CREATE TABLE DemoTable (
StudentId INT,
StudentName VARCHAR(100)
);
Query OK, 0 rows affected (1.88 sec)
mysql> INSERT INTO DemoTable VALUES(100,'Chris'); Query OK, 1 row affected (0.41 sec) mysql> INSERT INTO DemoTable VALUES(101,'Robert'); Query OK, 1 row affected (0.30 sec) mysql> INSERT INTO DemoTable VALUES(102,'David'); Query OK, 1 row affected (0.94 sec) mysql> INSERT INTO DemoTable VALUES(103,'Mike'); Query OK, 1 row affected (0.23 sec)
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable;
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 100 | Chris | | 101 | Robert | | 102 | David | | 103 | Mike | +-----------+-------------+ 4 rows in set (0.00 sec)
मॉड्यूलस द्वारा क्रमबद्ध करने की क्वेरी
mysql> SELECT StudentId, StudentName,
StudentId % 2, StudentId % 3
FROM DemoTable
ORDER BY StudentId % 2, StudentId % 3;
परिणाम:
+-----------+-------------+---------------+---------------+ | StudentId | StudentName | StudentId % 2 | StudentId % 3 | +-----------+-------------+---------------+---------------+ | 102 | David | 0 | 0 | | 100 | Chris | 0 | 1 | | 103 | Mike | 1 | 1 | | 101 | Robert | 1 | 2 | +-----------+-------------+---------------+---------------+ 4 rows in set (0.00 sec)
व्याख्या: पहले % 2 (सम/विषम) से क्रम: सम (0) पहले: 102, 100। फिर विषम (1): 103, 101। प्रत्येक समूह में % 3 से द्वितीयक क्रम। यह डेटा को बाल्टी में बांटने के लिए उपयोगी है।