तो मेरे पास एक दिलचस्प सवाल है कि मुझे यकीन नहीं है कि 'हैक' माना जाता है या नहीं। मैंने कुछ प्रश्नों को देखा लेकिन मुझे डुप्लिकेट नहीं मिला, इसलिए यह यहां है। असल में, मुझे यह जानने की ज़रूरत है कि यह अविश्वसनीय है या बुरा अभ्यास माना जाता है।संदिग्ध एसक्यूएल अभ्यास - निर्माण समय के बजाय आईडी द्वारा आदेश
मेरे पास एक अद्वितीय ऑटो वृद्धिशील आईडी और एक create_at टाइमस्टैम्प के साथ एक बहुत ही सरल तालिका है।
+-----------+--------------------+
| id |created_at |
+-----------+--------------------+
| 1 |2012-12-11 20:35:19 |
| 2 |2012-12-12 20:35:19 |
| 3 |2012-12-13 20:35:19 |
| 4 |2012-12-14 20:35:19 |
+-----------+--------------------+
इन स्तंभों के दोनों गतिशील रूप से जोड़ा जाता है (मेरी समस्या का सरलीकृत संस्करण प्रश्न में अवधारणा स्पष्ट करने के लिए) तो यह कहा जा सकता है कि एक नए 'सम्मिलित करें' हमेशा एक अधिक से अधिक आईडी और हमेशा होगा की एक बड़ी तारीख है।
उद्देश्य - बहुत बस आदेश
समाधान एक अवरोही क्रम में परिणाम created_at द्वारा आदेश दिया हड़पने - एक क्वेरी है कि आदेश
SELECT * FROM tablename
ORDER BY created_at DESC
समाधान दो अवरोही क्रम में दिनांक के आधार पर आदेश - एक क्वेरी जो अवरोही क्रम में आईडी द्वारा आदेश
SELECT * FROM tablename
ORDER BY id DESC
क्या समाधान दो को खराब अभ्यास माना जाता है? या समाधान दो चीजों को करने का सही तरीका है। आपके तर्कों का कोई भी स्पष्टीकरण बहुत उपयोगी होगा क्योंकि मैं अवधारणा को समझने की कोशिश कर रहा हूं, न कि केवल एक उत्तर प्राप्त करें। अग्रिम में धन्यवाद।
ठीक है, आईडी द्वारा सॉर्टिंग इंडेक्सिंग का लाभ उठा सकता है। आपको प्रश्न के लिए अपनी स्कीमा के प्रासंगिक भाग शामिल करना चाहिए। – Perception
जबकि मुझे नहीं पता कि इसके बारे में जाने के लिए 'आधिकारिक तरीका' है, तो 'ऑर्डर बाय' क्वेरी बस ऐसा करने के लिए मौजूद है। कॉलम द्वारा ऑर्डर करने के लिए। मुझे दिखाई देने वाली एकमात्र कमी यह है कि टाइमस्टैम्प में डुप्लीकेट (एक ही सेकेंड में दो आवेषण) हो सकते हैं और यह कि अनुपलब्ध इंडेक्स के कारण क्वेरी धीमी हो सकती है। – ATaylor