2009-10-09 17 views
44

से अधिक है मेरे पास मेरी तालिका में एक LINK फ़ील्ड है। कुछ पंक्तियों में एक लिंक होता है, कुछ नहीं करते हैं।फ़ील्ड की "लंबाई" के लिए MySQL SELECT कथन 1

मैं उन सभी पंक्तियों का चयन करना चाहता हूं जहां LINK मौजूद है। (लंबाई एक्स वर्णों से अधिक है)।

मैं इसे कैसे लिखूं?

उत्तर

86

कैसे के बारे में:

SELECT * FROM sometable WHERE CHAR_LENGTH(LINK) > 1 

यहाँ MySql string functions page (5.0) है।

ध्यान दें कि मैं CHAR_LENGTH बजाय चुना LENGTH की है, जैसे कि किसी आंकड़े में multibyte चरित्र आप शायद वास्तव में में देखते हैं कितने वर्ण रुचि रखते हैं, कैसे नहीं भंडारण से कई बाइट वे ले। तो उपरोक्त के लिए, एक पंक्ति जहां LINK एक दो बाइट वर्ण वापस नहीं किया जाएगा - जबकि यह LENGTH का उपयोग करते समय होगा।

ध्यान दें कि यदि LINKNULL है, CHAR_LENGTH(LINK) के परिणाम के रूप में अच्छी तरह से NULL होंगे, इसलिए पंक्ति मेल नहीं खाएगी।

+0

मैं इस काम को डीबी 2 पर भी पुष्टि कर सकता हूं। thanx @ जो स्कीट! – Yaniv

+1

इसका काम जवाब के लिए पूरी तरह से धन्यवाद :) –

11
select * from [tbl] where [link] is not null and len([link]) > 1 

MySQL उपयोगकर्ता के लिए:

LENGTH([link]) > 1 
+1

'[पहचानकर्ता] 'वाक्यविन्यास केवल एमएस एसक्यूएल - एसक्यूएल सर्वर और एक्सेस (जहां तक ​​मुझे पता है) द्वारा उपयोग किया जाता है। यह सवाल MySQL के बारे में है। – dcrosta

+3

मुझे नहीं लगता कि लेन() एक मान्य MySQL फ़ंक्शन – ChssPly76

+0

है ओह, हाँ, मैं पूरी तरह से प्रश्न के उस हिस्से को याद करता हूं। क्या मुझे यह जवाब हटा देना चाहिए, क्योंकि यह बिल्कुल प्रासंगिक नहीं है? – Amy

4

प्रयास करें:

SELECT 
    * 
FROM 
    YourTable 
WHERE 
    CHAR_LENGTH(Link) > x 
5

बस में मामला किसी को भी कैसे ओरेकल में लगाना चाहते हैं और यहाँ (मेरे जैसे) आया था, वाक्य रचना

select length(FIELD) from TABLE 

सिर्फ मामले में है;)

संबंधित मुद्दे