LIKE (Entity SQL)
Belirli bir karakterin String
belirtilen desenle eşleşip eşleşmediğini belirler.
Söz dizimi
match [NOT] LIKE pattern [ESCAPE escape]
Bağımsız değişkenler
match
bir olarak değerlendirilen bir String
Entity SQL ifadesi.
pattern
Belirtilen String
ile eşleşecek bir desen.
escape
Bir kaçış karakteri.
DEĞİl LIKE sonucunun olumsuzlandığını belirtir.
Dönüş Değeri
true
desenle string
eşleşiyorsa; eşleşmiyorsa, false
.
Açıklamalar
LIKE işlecini kullanan varlık SQL ifadeleri, filtre ölçütü olarak eşitlik kullanan ifadelerle çok aynı şekilde değerlendirilir. Ancak LIKE işlecini kullanan Varlık SQL ifadeleri hem değişmez değerleri hem de joker karakterleri içerebilir.
Aşağıdaki tabloda, desenin string
söz dizimi açıklanmaktadır.
Joker Karakter | Açıklama | Örnek |
---|---|---|
% | Sıfır veya daha fazla karakterden herhangi biri string . |
title like '%computer%' başlığın herhangi bir yerinde sözcüğü "computer" olan tüm başlıkları bulur. |
_ (alt çizgi) | Herhangi bir tek karakter. | firstname like '_ean' Dean veya Sean gibi , ile "ean biten tüm dört harfli adları bulur. |
[ ] | Belirtilen aralıktaki ([a-f]) veya kümedeki ([abcdef]) herhangi bir tek karakter. | lastname like '[C-P]arsen' , "arsen" ile biten ve C ile P arasında carsen veya Larsen gibi tek bir karakterle başlayan soyadlarını bulur. |
[^] | Belirtilen aralıkta ([^a-f]) veya ([^abcdef]) olmayan tek bir karakter. | lastname like 'de[^l]%' "de" ile başlayan ve aşağıdaki harf olarak "l" içermeyen tüm soyadlarını bulur. |
Not
Entity SQL LIKE işleci ve ESCAPE yan tümcesi veya System.Guid
değerlerine System.DateTime
uygulanamaz.
LIKE, ASCII desen eşleştirmeyi ve Unicode desen eşleştirmeyi destekler. Tüm parametreler ASCII karakter olduğunda, ASCII desen eşleştirmesi gerçekleştirilir. Bağımsız değişkenlerden biri veya daha fazlası Unicode ise, tüm bağımsız değişkenler Unicode'a dönüştürülür ve Unicode desen eşleştirmesi gerçekleştirilir. LIKE ile Unicode kullandığınızda, sondaki boşluklar önemlidir; ancak Unicode olmayanlar için sondaki boşluklar önemli değildir. Entity SQL'in desen dizesi söz dizimi Transact-SQL ile aynıdır.
Desen normal karakterler ve joker karakterler içerebilir. Desen eşleştirme sırasında, normal karakterlerin karakterinde string
belirtilen karakterlerle tam olarak eşleşmesi gerekir. Ancak joker karakterler, karakter dizesinin rastgele parçalarıyla eşleştirilebilir. Joker karakterlerle kullanıldığında LIKE işleci = ve != dize karşılaştırma işleçlerinden daha esnektir.
Not
Belirli bir sağlayıcıyı hedeflerseniz sağlayıcıya özgü uzantıları kullanabilirsiniz. Ancak bu tür yapılar, örneğin diğer sağlayıcılar tarafından farklı şekilde ele alınabilir. SqlServer, [first-last] ve [^first-last] desenlerini destekler; burada ilk ve son arasında tam olarak bir karakter eşleşir ve ikincisi ilk ve son arasında olmayan bir karakterle tam olarak eşleşir.
Escape
ESCAPE yan tümcesini kullanarak, önceki bölümdeki tabloda açıklanan özel joker karakterlerden birini veya daha fazlasını içeren karakter dizelerini arayabilirsiniz. Örneğin, birkaç belgenin başlıkta "%100" değişmez değerini içerdiğini ve bu belgelerin tümünü aramak istediğinizi varsayalım. Yüzde (%) karakteri joker karakter olduğundan, aramayı başarıyla yürütmek için Entity SQL ESCAPE yan tümcesini kullanarak bu karakterden kaçmalısınız. Aşağıda bu filtrenin bir örneği verilmiştir.
"title like '%100!%%' escape '!'"
Bu arama ifadesinde, ünlem işareti karakterinin (!) hemen ardından gelen yüzde joker karakteri (%), joker karakter yerine değişmez değer olarak kabul edilir. Entity SQL joker karakterleri ve köşeli ayraç ([ ]
) karakterleri dışında herhangi bir karakteri kaçış karakteri olarak kullanabilirsiniz. Önceki örnekte ünlem işareti (!) karakteri kaçış karakteridir.
Örnek
Aşağıdaki iki Varlık SQL sorgusu, belirli bir karakter dizesinin belirtilen desenle eşleşip eşleşmediğini belirlemek için LIKE ve ESCAPE işleçlerini kullanır. İlk sorgu, karakterleriyle Down_
başlayan öğesini ararName
. Alt çizgi (_
) joker karakter olduğundan bu sorgu ESCAPE seçeneğini kullanır. ESCAPE seçeneğini belirtmeden sorgu, sözcüğün Down
ardından alt çizgi karakteri dışında tek bir karakterle başlayan tüm değerleri ararName
. Sorgular AdventureWorks Satış Modeli'ni temel alır. Bu sorguyu derlemek ve çalıştırmak için şu adımları izleyin:
Nasıl yapılır: PrimitiveType Sonuçları Döndüren Bir Sorgu Yürütme bölümündeki yordamı izleyin.
Aşağıdaki sorguyu yöntemine
ExecutePrimitiveTypeQuery
bağımsız değişken olarak geçirin:
-- LIKE and ESCAPE
-- If an AdventureWorksEntities.Products contained a Name
-- with the value 'Down_Tube', the following query would find that
-- value.
Select value P.Name FROM AdventureWorksEntities.Products AS P
WHERE P.Name LIKE 'DownA_%' ESCAPE 'A'
-- LIKE
Select value P.Name FROM AdventureWorksEntities.Products AS P
WHERE P.Name LIKE 'BB%'