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

Postgresql 9.4 . में रिक्त स्थान के साथ गलत क्रम/संयोजन/क्रम

यूनिक्स/लिनक्स एसई पर, एक मित्र विशेषज्ञ ने समझाया कि आप जो देखते हैं वह यूनिकोड को छाँटने का उचित तरीका है। मूल रूप से, मानक सॉर्ट करने का प्रयास कर रहा है:

di Silva Fred                  di Silva Fred
di Silva John                  diSilva Fred
diSilva Fred                   disílva Fred
diSilva John         ->        di Silva John
disílva Fred                   diSilva John
disílva John                   disílva John

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

आप सेटिंग करके यूनिकोड संयोजन को बायपास कर सकते हैं:

export LC_ALL=C

या पोस्टग्रेज़ में छँटाई के लिए बाइट सरणी में कास्ट करके:

order by name::bytea

या (भट्ठा के उत्तर से) C . निर्दिष्ट करके मिलान:

order by name collate "C"

या कॉलम के लिए डिफ़ॉल्ट संयोजन को बदलकर:

alter table products alter column name type text collate "C";



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL JDBC नल स्ट्रिंग को एक बाइट के रूप में लिया गया

  2. पूर्ण संग्रहीत प्रक्रिया कोड कैसे प्रदर्शित करें?

  3. PostgreSQL13 में अपग्रेड करना

  4. PHP के माध्यम से Postgres से कनेक्ट करने में असमर्थ लेकिन कमांड लाइन और PgAdmin से अलग मशीन पर कनेक्ट कर सकते हैं

  5. बैकअप PostgreSQL pg_dump और pg_dumpall का उपयोग कर