UPDATE में ORDER BY उपयोग नहीं कर सकते; SELECT में ORDER BY DESC का उपयोग करें
आप UPDATE कमांड के साथ ORDER BY क्लॉज का उपयोग नहीं कर सकते, लेकिन SELECT स्टेटमेंट के साथ ORDER BY DESC का उपयोग कर सकते हैं।
पहले टेबल बनाएं:
mysql> create table DemoTable1403 ( DueDate timestamp ); Query OK, 0 rows affected (1.26 sec)
रिकॉर्ड डालें:
mysql> insert into DemoTable1403 values('2019-09-29'); Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable1403 values('2016-02-21'); Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable1403 values('2018-01-31'); Query OK, 1 row affected (0.65 sec)
mysql> insert into DemoTable1403 values('2017-12-01'); Query OK, 1 row affected (0.27 sec)
सभी रिकॉर्ड देखें:
mysql> select * from DemoTable1403;
आउटपुट:
+---------------------+ | DueDate | +---------------------+ | 2019-09-29 00:00:00 | | 2016-02-21 00:00:00 | | 2018-01-31 00:00:00 | | 2017-12-01 00:00:00 | +---------------------+ 4 rows in set (0.00 sec)
ORDER BY के साथ तिथियों को क्रमबद्ध करने की क्वेरी:
mysql> select * from DemoTable1403 order by DueDate DESC;
परिणाम:
+---------------------+ | DueDate | +---------------------+ | 2019-09-29 00:00:00 | | 2018-01-31 00:00:00 | | 2017-12-01 00:00:00 | | 2016-02-21 00:00:00 | +---------------------+ 4 rows in set (0.00 sec)
व्याख्या: MySQL में UPDATE ... ORDER BY समर्थित नहीं है (केवल LIMIT के साथ)। तिथियों को क्रमबद्ध देखने के लिए SELECT ... ORDER BY DueDate DESC (अवरोही) या ASC (आरोही) का उपयोग करें। यदि आप क्रमबद्ध क्रम में पंक्तियों को अपडेट करना चाहते हैं (उदाहरण के लिए, क्रमिक संख्या असाइन करने के लिए), तो एक सबक्वेरी या CTE का उपयोग करें जो क्रमबद्ध परिणाम देता है, फिर उससे UPDATE करें।