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 StringEntity SQL ifadesi.

pattern Belirtilen Stringile 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 stringsö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 "eanbiten 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 stringbelirtilen 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:

  1. Nasıl yapılır: PrimitiveType Sonuçları Döndüren Bir Sorgu Yürütme bölümündeki yordamı izleyin.

  2. 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%'

Ayrıca bkz.