Bagikan melalui


LIKE (Entity SQL)

Menentukan apakah karakter tertentu String cocok dengan pola yang ditentukan.

Sintaks

match [NOT] LIKE pattern [ESCAPE escape]

Argumen

match Ekspresi Entity SQL yang mengevaluasi ke String.

pattern Pola yang cocok dengan yang ditentukan String.

escape Karakter escape.

NOT Menentukan bahwa hasil LIKE dinegasikan.

Tampilkan Nilai

true jika string cocok dengan pola; jika tidak, false.

Keterangan

Ekspresi Entity SQL yang menggunakan operator LIKE dievaluasi dengan cara yang sama seperti ekspresi yang menggunakan kesetaraan sebagai kriteria filter. Namun, ekspresi Entity SQL yang menggunakan operator LIKE dapat menyertakan karakter harfiah dan karakter wildcard.

Tabel berikut menjelaskan sintaks pola string.

Karakter Wildcard Deskripsi Contoh
% Setiap string dari nol atau lebih karakter. title like '%computer%' menemukan semua judul dengan kata "computer" di mana saja dalam judul.
_ (garis bawah) Setiap karakter tunggal. firstname like '_ean' menemukan keempat nama depan huruf yang diakhir dengan "ean," seperti Dean atau Sean.
[ ] Setiap karakter tunggal dalam rentang tertentu ([a-f]) atau set ([abcdef]). lastname like '[C-P]arsen' menemukan nama belakang yang berakhiran dengan "arsen" dan dimulai dengan karakter tunggal antara C dan P, seperti Carsen atau Larsen.
[^] Setiap karakter tunggal tidak dalam rentang yang ditentukan ([^a-f]) atau set ([^abcdef]). lastname like 'de[^l]%' menemukan semua nama belakang yang dimulai dengan "de" dan tidak menyertakan "l" sebagai huruf berikutnya.

Catatan

Operator Entity SQL LIKE dan klausul ESCAPE tidak dapat diterapkan ke nilai System.DateTime atau System.Guid.

LIKE mendukung pencocokan pola ASCII dan pencocokan pola Unicode. Ketika semua parameter adalah karakter ASCII, pencocokan pola ASCII dilakukan. Jika satu atau lebih argumen adalah Unicode, semua argumen dikonversi ke Unicode dan pencocokan pola Unicode dilakukan. Saat Anda menggunakan Unicode dengan LIKE, blank berikutnya signifikan; namun, untuk non-Unicode, blank berikutnya tidak signifikan. Sintaks string pola Entity SQL sama dengan Transact-SQL.

Pola dapat mencakup karakter reguler dan karakter kartubebas. Selama pencocokan pola, karakter biasa harus sama persis dengan karakter yang ditentukan dalam karakter string. Namun, karakter wildcard dapat dicocokkan dengan fragmen arbitrer dari string karakter. Ketika digunakan dengan karakter wildcard, operator LIKE lebih fleksibel daripada operator perbandingan string = dan !=.

Catatan

Anda dapat menggunakan ekstensi khusus penyedia jika Anda menargetkan penyedia tertentu. Namun, konstruksi tersebut dapat diperlakukan secara berbeda oleh penyedia lain, misalnya. SqlServer mendukung pola [first-last] dan [^first-last] di mana yang pertama cocok dengan tepat satu karakter antara yang pertama dan terakhir, dan yang terakhir cocok dengan tepat satu karakter yang bukan antara yang pertama dan terakhir.

Escape

Dengan menggunakan klausul ESCAPE, Anda dapat mencari string karakter yang menyertakan satu atau beberapa karakter wildcard khusus yang dijelaskan dalam tabel di bagian sebelumnya. Misalnya, asumsikan beberapa dokumen menyertakan harfiah "100%" dalam judul dan Anda ingin mencari semua dokumen tersebut. Karena karakter persen (%) adalah karakter wildcard, Anda harus menghindarinya menggunakan klausul Entity SQL ESCAPE untuk berhasil menjalankan pencarian. Berikut ini adalah contoh dari filter ini.

"title like '%100!%%' escape '!'"

Dalam ekspresi pencarian ini, persentase karakter wildcard (%) segera setelah karakter tanda seru (!) diperlakukan sebagai harfiah, bukan sebagai karakter wildcard. Anda dapat menggunakan karakter apa pun sebagai karakter escape kecuali karakter wildcard Entity SQL dan karakter tanda kurung siku ([ ]). Pada contoh sebelumnya, karakter tanda seru (!) adalah karakter escape.

Contoh

Dua kueri Entity SQL berikut menggunakan operator LIKE dan ESCAPE untuk menentukan apakah string karakter tertentu cocok dengan pola yang ditentukan. Kueri pertama menelusuri Name yang dimulai dengan karakter Down_. Kueri ini menggunakan opsi ESCAPE karena garis bawah (_) adalah karakter wildcard. Tanpa menentukan opsi ESCAPE, kueri akan mencari nilai Name apa pun yang dimulai dengan kata Down diikuti oleh karakter tunggal apa pun selain karakter garis bawah. Kueri didasarkan pada Model Penjualan AdventureWorks. Untuk mengompilasi dan menjalankan kueri ini, ikuti langkah-langkah berikut:

  1. Ikuti prosedur di Cara: Menjalankan Kueri yang Mengembalikan Hasil PrimitiveType.

  2. Teruskan kueri berikut sebagai argumen ke metode ExecutePrimitiveTypeQuery :

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

Lihat juga