mysql - Why is this select ordering not working as expected? -


मेरा चयन कथन है

  चुनें शैली नहीं, सही (कॉन्सैट ('#### ## ', ट्रिम (स्टाइल नॉन)), 6) `शैलियों` से मुख्य प्रकार जहां कुंजी के आधार पर 1 ऑर्डर है   

शैली नहीं varchar (6) है और इसमें ज्यादातर संख्यात्मक स्ट्रिंग्स 3 से 6 वर्ण हैं लंबे, जिनमें से कुछ में एक अग्रणी या अनुगामी पूंजी पत्र शामिल हैं उद्देश्य परिमाण के क्रम में शैलियों को दिखाने के लिए है

मुझे पहले 100 से 99 9 पहले, फिर A00 से Z99, फिर 1000 से 99 99 और A000 से Z999 आदि चाहते हैं।

मुझे ये परिणाम मिलते हैं I

  101 ### 101 180 ### 180 105 ### 105 104 ### 104 102 ### 102 123 ### 123 124 ### 124 432 ### 432 1004 ## 1004 1001 ## 1001 1002 ## 1002 1003 ## 1003 1006 ## 1006 1234 ## 1234 1231 ## 1231 1255 ## 1255 1288 ## 1288 2005 ## 2005 2006 ## 2006 2007 ## 2007 2008 # # 2008   

परिणाम आरोही क्रम में क्यों नहीं हैं? कुंजी मैं क्या उम्मीद है

मैं MySQL 5.1.36-समुदाय का उपयोग यूटीएफ -8 अक्षर के साथ करता हूं, हर जगह सेट करता है। दिखाया गया कोई भी शैली '0' से '9' वर्णों के अलावा कुछ भी नहीं है

कुछ और जानकारी: मैंने

  चुनें शैली नहीं, ठीक (कॉनकैट (दोहराने ('#', 5), ट्रिम (शैली नं)), 6 ) के रूप में कुंजी शैलियां आदेश से प्रमुख एएससी   

और 5 के लिए अलग-अलग मानों के साथ की कोशिश की। 3 और बड़े सभी को महत्वपूर्ण के लिए उपयुक्त मूल्य का उत्पादन करना चाहिए।

हालांकि 3, 4 5, 6 और 7 सभी परिणाम के विभिन्न आदेश का उत्पादन करते हैं - सभी गलत। मेरी परीक्षण फ़ाइल में पहली 75 लाइनों के लिए 8 कामों का मान

समझने के बिना, मुझे विश्वास नहीं है कि यह सही है।

ऐसा लगता है कि आप (ट्रिम) फ़ील्ड की लंबाई से ऑर्डर करना चाहते हैं, तो आप यह भी कह सकते हैं :

  चुनें शैली कोई भी `शैलियों` में नहीं है जहां लेंस (ट्राइम (` शैली नॉन ')), TRIM (`शैली नॉन') से 1 ऑर्डर संभावित रूप से सहेजा जा रहा है   

आप एक सिरदर्द के रूप में भी जब शैली कोई भी एक दिन 6 वर्णों से अधिक लंबा नहीं बदल जाता है।

Comments