MySQL: फ़ील्ड आकार / लंबाई के अनुसार


89

यहाँ एक तालिका संरचना है (उदाहरण के लिए परीक्षण):

 __________________________________________
| Field Name     | Data Type               |                 
|________________|_________________________|                 
|    id          |   BIGINT (20)           |                 
|________________|_________________________|                 
|    title       |   varchar(25)           |                 
|________________|_________________________|                 
|    description |   text                  |                 
|________________|_________________________|                 

एक क्वेरी की तरह:

SELECT * FROM TEST ORDER BY description DESC;

लेकिन मैं क्षेत्र विवरण के क्षेत्र आकार / लंबाई के आधार पर ऑर्डर करना चाहूंगा । फ़ील्ड प्रकार TEXT या BLOB होगा।

जवाबों:


167
SELECT * FROM TEST ORDER BY LENGTH(description) DESC;

LENGTHसमारोह बाइट में स्ट्रिंग की लंबाई देता है। यदि आप (बहु-बाइट) वर्णों को गिनना चाहते हैं, तो CHAR_LENGTHइसके बजाय फ़ंक्शन का उपयोग करें :

SELECT * FROM TEST ORDER BY CHAR_LENGTH(description) DESC;

4
बस उत्तर में जोड़ने के लिए: यदि प्रकार BLOB है, तो आप उपयोग कर सकते हैं OCTET_LENGTH(column_name)
मस्तज़ी 22

MySQL प्रलेखन के अनुसार @mastazi: OCTET_LENGTH () LENGTH () के लिए एक पर्याय है।
हेक्टर

'CHAR_LENGTH' एक मान्यता प्राप्त अंतर्निहित फ़ंक्शन नाम नहीं है। मैं इस त्रुटि का सामना कर रहा हूँ
अनुराग

5
SELECT * FROM TEST ORDER BY CHAR_LENGTH(description);

'CHAR_LENGTH' एक मान्यता प्राप्त अंतर्निहित फ़ंक्शन नाम नहीं है। मैं इस त्रुटि का सामना कर रहा हूँ
अनुराग

4

MS SQL का उपयोग करने वालों के लिए

SELECT * FROM TEST ORDER BY LEN(field)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.