मुझे Postgres . से ब्लॉग पोस्ट की एक सूची मिल रही है

select id, post_priority, publish_start
from posts
where email = 'someuser@gmail.com'
ORDER BY publish_start DESC

अगर एक ही तारीख को कई लेख प्रकाशित होते हैं, तो सूची गलत हो रही है।

जब मैंने पोस्टग्रेज 10.2 (सर्वर उबंटू) से पुनर्प्राप्त किया

  id  | title |    post_priority     | publish_start
------+-------+----------------------+----------------
 1001 | A...  | 1                    | 2019-09-05
 1002 | B...  | 2                    | 2019-09-05

और जब मैं अपनी देव मशीन से पुनर्प्राप्त करता हूं तो यह अलग होता है - पोस्टग्रेस 11 (मैकोज़)

  id  | title |    post_priority     | publish_start
------+-------+----------------------+----------------
 1002 | B...  | 2                    | 2019-09-05
 1001 | A...  | 1                    | 2019-09-05

मुझे पता है कि क्वेरी में ऑर्डर करने के लिए मुझे केवल एक और कॉलम जोड़ने की जरूरत है। लेकिन मुझे अभी भी आश्चर्य है कि सभी लेखों के लिए publish_start दिनांक समान होने पर डिफ़ॉल्ट प्रकार का क्या निर्णय लिया गया? उस डिफ़ॉल्ट कॉलम को कैसे बदलें/कॉन्फ़िगर करें?

3
Davuz 12 सितंबर 2019, 11:08

1 उत्तर

सबसे बढ़िया उत्तर

डिफ़ॉल्ट सॉर्ट ऑर्डर जैसी कोई चीज़ नहीं होती है।

यदि order by में निर्दिष्ट स्तंभों के लिए दो (या अधिक) पंक्तियों का मान समान है, तो उन गुलाबों का क्रम अपरिभाषित है।

एक स्थिर और गारंटीकृत क्रम प्राप्त करने का एकमात्र तरीका post_priority को order by कॉलम में जोड़ना है।

6
Community 20 जून 2020, 09:12