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

MySQL ऑर्डर दिनांक कॉलम और पूर्णांक कॉलम द्वारा, लेकिन पूर्णांक कॉलम के ऑर्डरिंग नियम निर्दिष्ट करें? क्या यह संभव है?

<घंटा/>

आप इसे ORDER BY CASE स्टेटमेंट की मदद से हासिल कर सकते हैं। वाक्य रचना इस प्रकार है -

SELECT *FROM yourTableName ORDER BY CASE yourIntegerColumnName1 WHEN 2 THEN 1 ELSE 0 END DESC ,yourDateColumnName ASC;

उपरोक्त वाक्य रचना को समझने के लिए, आइए एक तालिका बनाते हैं। तालिका बनाने की क्वेरी इस प्रकार है -

mysql> create table OrderByCaseDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> GroupId int,
   -> ArrivalDate date,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (1.57 sec)

इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें। क्वेरी इस प्रकार है -

mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(2,'19/02/06');
Query OK, 1 row affected (0.13 sec)
mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(1,'20/02/06');
Query OK, 1 row affected (0.20 sec)
mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(3,'18/02/06');
Query OK, 1 row affected (0.12 sec)
mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(3,'21/02/06');
Query OK, 1 row affected (0.23 sec)
mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(2,'17/02/06');
Query OK, 1 row affected (0.17 sec)
mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(1,'22/02/06');
Query OK, 1 row affected (0.14 sec)

चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है -

mysql> select *from OrderByCaseDemo;

निम्न आउटपुट है -

+----+---------+-------------+
| Id | GroupId | ArrivalDate |
+----+---------+-------------+
|  1 |       2 | 2019-02-06  |
|  2 |       1 | 2020-02-06  |
|  3 |       3 | 2018-02-06  |
|  4 |       3 | 2021-02-06  |
|  5 |       2 | 2017-02-06  |
|  6 |       1 | 2022-02-06  | 
+----+---------+-------------+
6 rows in set (0.00 sec)

यहां दिनांक कॉलम के साथ-साथ एक पूर्णांक कॉलम द्वारा ऑर्डर करने की क्वेरी है -

mysql> select *from OrderByCaseDemo order by case GroupId when 2 then 1 else 0 end desc,ArrivalDate asc;

निम्न आउटपुट है -

+----+---------+-------------+
| Id | GroupId | ArrivalDate |
+----+---------+-------------+
|  5 |       2 | 2017-02-06  |
|  1 |       2 | 2019-02-06  |
|  3 |       3 | 2018-02-06  |
|  2 |       1 | 2020-02-06  |
|  4 |       3 | 2021-02-06  |
|  6 |       1 | 2022-02-06  |
+----+---------+-------------+
6 rows in set (0.00 sec)

  1. MySQL क्वेरी वर्तमान दिन और महीने के अनुसार ऑर्डर करने के लिए?

    इसके लिए आप ORDER BY CASE स्टेटमेंट का इस्तेमाल कर सकते हैं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable(ड्यूडेट डेट);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.56 सेकंड) नोट - मान लें कि आज की तारीख 2019-07-22 है। इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें (2019

  1. दिनांक कॉलम NULL बनाने के लिए MySQL क्वेरी?

    दिनांक कॉलम को शून्य बनाने के लिए, वैकल्पिक तालिका का उपयोग करें और संशोधित करें और दिनांक को पूर्ण पर सेट करें। निम्नलिखित वाक्य रचना है - तालिका बदलें yourTableName कॉलम संशोधित करें yourColumnName दिनांक NULL; आइए पहले एक टेबल बनाएं। यहां, हमने कॉलम को NOT NULL - . के रूप में सेट किया है टेबल ब

  1. MySQL में शर्तों के साथ क्वेरी कैसे ऑर्डर करें और चुनें?

    निम्नलिखित वाक्य रचना है - अपनेTableName क्रम से yourColumnName=0,yourColumnName; . द्वारा चुनें * आइए पहले एक टेबल बनाएं - );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.80 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1348 मानों में डालें(89);क्वेरी ठीक है, 1 पंक्ति प्रभावि