2009-10-09 17 views
44

tablosundan daha büyük bir LINK alanım var. Bazı satırların bir bağlantısı var, bazıları yok.Alanın "uzunluğu" için MySQL SELECT deyimi, 1

LINK'in bulunduğu tüm satırları seçmek istiyorum. (uzunluk X karakterden daha büyüktür).

Bunu nasıl yazarım? MySQL kullanıcı için

cevap

86

nereden:

SELECT * FROM sometable WHERE CHAR_LENGTH(LINK) > 1 

İşte MySql string functions page (5.0) var. Ben verilerde baytlı karakterler yokmuş gibi depolama kadar byte aldıkları değil, nasıl kaç karakter muhtemelen gerçekten ilgileniyorsanız, LENGTH yerine CHAR_LENGTH seçti

Not. Yukarıdakiler için, LINK'in tek bir iki baytlık karakter olduğu bir satır döndürülemez - oysa LENGTH kullanılır. LINKNULL ise satır uymayacak yüzden, CHAR_LENGTH(LINK) sonucu yanı NULL olacağı

Not.

+0

Bunun bir DB2 üzerinde de çalıştığını doğrulayabilirim. thanx @Joh Skeet! – Yaniv

+1

Çalışıyor Mükemmel cevap için teşekkürler :) –

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

:

LENGTH([link]) > 1 
+1

[tanımlayıcı] sözdizimi yalnızca MS SQL - SQL Server ve Access (bildiğim kadarıyla) tarafından kullanılır. Bu soru MySQL hakkında. – dcrosta

+3

Len() geçerli bir MySql işlevi olduğunu düşünmüyorum – ChssPly76

+0

Oh, evet, sorunun bu bölümünü tamamen özledim. Bu cevabı silmeli miyim, hiç alakalı değil mi? – Amy

4

Dene:

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

vaka herkes, sözdizimi

select length(FIELD) from TABLE 

ihtimale nasıl torpil bulmak istiyoruz ve (benim gibi) Buraya gelmeden hemen içinde;)