Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

CAST ऑपरेटर का उपयोग करके VARCHAR कॉलम को FLOAT के रूप में सॉर्ट करना MySQL में काम नहीं कर रहा है?

<घंटा/>

अगर आपकी कास्ट काम नहीं करती है, तो आप ORDER BY क्लॉज के साथ अपने ColumnName*1 का उपयोग कर सकते हैं।

अपने कॉलमनाम*1 का उपयोग करना। वाक्य रचना इस प्रकार है:

अपना कॉलमनाम1 चुनें,अपना कॉलमनाम2,...N अपने टेबलनाम से ऑर्डर अपने कॉलमनाम*1 डीईएससी द्वारा करें;

आप CAST() ऑपरेटर का भी उपयोग कर सकते हैं। वाक्य रचना इस प्रकार है:

अपना कॉलमनाम1,अपना कॉलमनाम2,...एन अपनेटेबलनाम से कास्ट द्वारा ऑर्डर करें(आपका कॉलमनाम दशमलव (8,2) के रूप में) डीईएससी;

उपरोक्त वाक्य रचना को समझने के लिए, आइए एक तालिका बनाते हैं। तालिका बनाने की क्वेरी इस प्रकार है:

mysql> टेबल बनाएं VarcharColumnAsFloatDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Amount varchar(20), -> PRIMARY KEY(Id) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.01 सेकंड) 

इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें। क्वेरी इस प्रकार है:

mysql> VarcharColumnAsFloatDemo (राशि) मान ('3446.23') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.10 सेकंड) mysql> VarcharColumnAsFloatDemo (राशि) मान ('2464.46') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित है ( 0.16 सेकंड)mysql> VarcharColumnAsFloatDemo (राशि) मान ('6465.78') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.13 सेकंड) mysql> VarcharColumnAsFloatDemo (राशि) मान ('6464.98') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित ( 0.44 सेकंड)mysql> VarcharColumnAsFloatDemo (राशि) मान ('645.90') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.19 सेकंड) mysql> VarcharColumnAsFloatDemo (राशि) मान ('6465.99') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित ( 0.23 सेकंड)mysql> VarcharColumnAsFloatDemo(राशि) मान ('3745.76') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.14 सेकंड)

चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है:

mysql> VarcharColumnAsFloatDemo से *चुनें;

निम्न आउटपुट है:

+-----+---------+| आईडी | राशि |+----+------------+| 1 | 3446.23 || 2 | 2464.46 || 3 | 6465.78 || 4 | 6464.98 || 5 | 645.90 || 6 | 6465.99 || 7 | 3745.76 |+----+------------+7 पंक्तियाँ सेट में (0.00 सेकंड)

यहाँ कास्ट ऑपरेटर का उपयोग करके varchar को फ्लोट के रूप में सॉर्ट करने के लिए क्वेरी है:

mysql> Id चुनें, VarcharColumnAsFloatDemo ऑर्डर कास्ट द्वारा (राशि DECIMAL(8,2)) DESC;

निम्न आउटपुट है:

+-----+---------+| आईडी | राशि |+----+------------+| 6 | 6465.99 || 3 | 6465.78 || 4 | 6464.98 || 7 | 3745.76 || 1 | 3446.23 || 2 | 2464.46 || 5 | 645.90 |+-----+------------+7 पंक्तियाँ सेट में (0.00 सेकंड)

दूसरा तरीका इस प्रकार है yourColumnName*1:

. का उपयोग करना
mysql> Id चुनें, VarcharColumnAsFloatDemo ऑर्डर से Amount*1 desc;

निम्न आउटपुट है:

+-----+---------+| आईडी | राशि |+----+------------+| 6 | 6465.99 || 3 | 6465.78 || 4 | 6464.98 || 7 | 3745.76 || 1 | 3446.23 || 2 | 2464.46 || 5 | 645.90 |+-----+------------+7 पंक्तियाँ सेट में (0.00 सेकंड)

  1. कुल फ़ंक्शन का उपयोग करके MySQL में स्तंभ मानों का औसत ज्ञात करें

    आइए पहले एक टेबल बनाएं - टेबल बनाएं डेमोटेबल(नंबर इंट);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.79 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें(96);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें - डे

  1. MySQL क्वेरी एक ही तालिका में varchar कॉलम से पूर्णांक तक IP पता कॉपी करने के लिए?

    इसके लिए आप INET_ATON() का इस्तेमाल कर सकते हैं। आइए पहले एक − . बनाएं );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.02 सेकंड) इंसर्ट का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1404 मान (224.0.0.0) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.42 सेकंड) − . का चयन करके तालिका से सभी रिकॉर्ड प्

  1. प्रयोग! MySQL में ऑपरेटर

    समान परिणामों के लिए, उपयोग न करें! ऑपरेटर। NOT कीवर्ड पहले से ही MySQL द्वारा प्रदान किया गया है। आइए पहले एक टेबल बनाएं - );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.50 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1560 मानों में डालें(0);क्वेरी ठीक है, 1 पंक्ति प्रभावित