Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मुझे mysql परिणामों के असामान्य क्रम की आवश्यकता है

यहां बताया गया है कि मैं इसे कैसे करूंगा:

SELECT *, (DATE_FORMAT(date, '%j')-DATE_FORMAT(NOW(), '%j')+365)%365 AS d 
FROM foo ORDER BY d;

%j दिनांक प्रारूप वर्ष का दिन है, अर्थात एक संख्या 001...366.

मैंने कुछ नमूना डेटा पर इसका परीक्षण किया और यह आपके द्वारा वर्णित तरीके से सॉर्ट करता है:यह वर्ष को अनदेखा करता है, और अगली तारीख को सॉर्ट करता है जो पहले वर्तमान तिथि के बाद आता है, फिर आरोही, और वर्ष में पहले की तारीखों के आसपास लपेटता है।

+----+------------+------+
| id | date       | d    |
+----+------------+------+
|  5 | 1999-05-15 |   27 |
|  6 | 1992-06-15 |   59 |
|  7 | 1990-07-15 |   88 |
|  8 | 1988-08-15 |  120 |
|  9 | 1980-11-15 |  212 |
|  1 | 2010-01-15 |  272 |
|  2 | 2009-02-15 |  303 |
|  3 | 2004-03-15 |  332 |
|  4 | 2002-04-15 |  362 |
+----+------------+------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql में लगातार दो पंक्तियों के बीच का अंतर

  2. एसक्यूएल - कई शर्तों के साथ हर कॉलम के बीच कई शब्द प्रिंट करें

  3. लेफ्ट जॉइन के साथ LIKE %% का उपयोग करना

  4. समय ओवरलैप के लिए एक टेबल की जाँच?

  5. MYSQL लेफ्ट परिणाम की अंतिम पंक्ति में शामिल हों