2014-07-04 5 views
6

मैं कई मूल्यों DATETIME डेटाप्रकार (YYYY-MM-YYY HH: MM: SS) के रूप में अपने डेटाबेस में संग्रहीत किए गए आदेश, और मैं उन्हें एक अवरोही में प्राप्त करने की कोशिश कर रहा है आदेश - सबसे कम से कम (तारीखों के मामले में - सबसे पुराना सबसे नया), हालांकि, विचित्र रूप से पर्याप्त है, यह डीईएससी ऑपरेटर के अस्तित्व को पूरी तरह से अनदेखा करता है।एसक्यूएल - द्वारा 'दिनांक' DESC

SQL क्वेरी (संक्षिप्त):

SELECT post_datetime FROM post WHERE type=`published` ORDER BY post_datetime DESC LIMIT 3 

और उस से, वे इस क्रम में मुद्रित:

2014-04-30 11:55:11 
2014-07-01 12:25:40 
2014-07-02 12:28:03 

(उन डेटाबेस में "सबसे पुराना" तिथि प्रविष्टियों होने के लिए होता भी)

समाधान? मैं ध्यान दूंगा कि अन्य चीजों पर डीईएससी का उपयोग करना (जैसे सामान्य संख्या) या तो काम नहीं करता है। मैंने अपने वाक्यविन्यास की जांच की है, उद्धरणों का प्रयास किया है, कोई उद्धरण नहीं, डबल कोट्स & ऐसे।

(नोट - मैं, कई घंटे के लिए किसी भी आगे सवाल का जवाब देने में सक्षम नहीं होगा हालांकि मैं प्रतिक्रिया करने के लिए मेरी पूरी कोशिश करेंगे एक बार मैं वापसी)


(6/11/17)

संपादित: स्पष्ट करने के लिए, भविष्य पाठकों के लिए, वाक्य रचना टाइपो मुद्दे से संबंधित है और जब एक उदाहरण टाइपिंग मेरी ओर से एक त्रुटि थी नहीं था। मैं इतने लंबे समय तक घर का बना प्रश्न निर्माता का उपयोग कर रहा था कि उस समय मैं उचित वाक्यविन्यास भूल गया था। मुद्दा मेरे प्रोग्राम के तर्क में झूठ बोला-सवाल नहीं। उपर्युक्त उदाहरण संपादित किया गया है और निर्दिष्ट कार्य करने के लिए देख रहे किसी भी व्यक्ति के लिए सही समाधान है। मुझे खेद है कि यह 50k बार देखा गया है ... लेकिन अब आप जानते हैं।

+0

वह क्वेरी कम से कम एक वाक्यविन्यास त्रुटि फेंक रही होनी चाहिए ('OR' 'ORDER BY' और' LIMIT' के बाद '=' के उपयोग के बाद), और एक त्रुटि शिकायत कर रही है कि इसे 'post_datetime' लेबल वाला कॉलम नहीं मिला DESC''। आपको पहले ऐसी त्रुटियों के माध्यम से काम करने की कोशिश करनी चाहिए थी। –

उत्तर

1

प्रयास करें:

SELECT post_datetime 
FROM post 
WHERE type = 'published' 
ORDER BY post_datetime DESC 
LIMIT 3 
1

निकालें यहाँ उद्धरण:

है:

ORDER BY = 'post_datetime DESC' AND LIMIT = '3' 

होना चाहिए:

ORDER BY post_datetime DESC LIMIT 3 
12
  1. उपयोग गाना le स्ट्रिंग्स के लिए उद्धरण
  2. तालिका नामों के आसपास एकल उद्धरण (प्रयोग `बजाय)
  3. न रखें संख्या के आसपास एकल उद्धरण डाल नहीं (आप कर सकते हैं, लेकिन इसे पढ़ने के लिए कठिन है)
  4. ORDER BY और के बीच AND न रखें LIMIT
  5. =, ORDER BY के बीच LIMIT कीवर्ड और हालत

तो तुम क्वेरी की तरह दिखाई देगा न रखें:

SELECT post_datetime 
FROM post 
WHERE type = 'published' 
ORDER BY post_datetime DESC 
LIMIT 3 
संबंधित मुद्दे