021-20483015

اپراتور LIKE در SQL

عملگر LIKE در یک عبارت WHERE برای جستجوی یک الگوی مشخص در یک ستون استفاده می شود. دو علامت های علامت استفاده شده در ارتباط با اپراتور LIKE وجود دارد:

٪   علامت درصد نشان دهنده صفر، یک یا چند کاراکتر است

_     برجسته نشان دهنده یک شخصیت است

توجه داشته باشید: MS Access از علامت سوال (؟) به جای نشانگر (_) استفاده می کند.

نشانه درصد و زیر خط کش نیز می تواند در ترکیب استفاده شود!

ساختار LIKE در SQL

LECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

نکته: شما همچنین می توانید هر تعداد شرایط را با استفاده از عملگرهای AND یا OR ترکیب کنید.

در اینجا چند نمونه از اپراتورهای LIKE مختلف با عبارات '٪' و '_' را نشان می دهد:

توضیحات
اپراتور LIKE
تمامی مقادیری که با a شروع می شود
WHERE CustomerName LIKE 'a%'
تمامی مقادیری که با a تمام میشوند
WHERE CustomerName LIKE '%a'
تمامی مقادیری که شامل حرف a هستند ، در هر جایی از مقدار که باشد.
WHERE CustomerName LIKE '%or%'
تمامی مقادیری که حرف کاراکتر دوم آن ها r می باشد.
WHERE CustomerName LIKE '_r%'
تمامی مقادیر که با a شروع میشود و حداقل 3 کاراکتر طول دارند
WHERE CustomerName LIKE 'a_%_%'
تمامی مقادیری که با a شروع می شود و با q تمام میشود
WHERE ContactName LIKE 'a%o'

در زیر یک انتخاب از جدول " Customers" در پایگاه دادهNorthwind است:

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
1
 
Alfreds Futterkiste
Maria Anders
Obere Str. 57
Berlin
12209
Germany
2
Ana Trujillo Emparedados y helados
Ana Trujillo
Avda. de la Constitución 2222
México D.F.
05021
Mexico
3
Antonio Moreno Taquería
Antonio Moreno
Mataderos 2312
México D.F.
05023
Mexico
4
 
Around the Horn
Thomas Hardy
120 Hanover Sq.
London
WA1 1DP
UK
5
Berglunds snabbköp
Christina Berglund
Berguvsvägen 8
Luleå
S-958 22
Sweden

مثال LIKE

دستور SQL زیر همه مشتریان را با CustomerName با شروع "a" انتخاب می کند:

SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';

4 رکورد انتخاب شد

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Alfreds Futterkiste 
Maria Anders 
Obere Str. 57 
Berlin 
12209 
Germany 
Ana Trujillo Emparedados y helados 
Ana Trujillo 
Avda. de la Constitución 2222 
México D.F. 
05021 
Mexico 
Antonio Moreno Taquería 
Antonio Moreno 
Mataderos 2312 
México D.F. 
05023 
Mexico 
Around the Horn 
Thomas Hardy 
120 Hanover Sq. 
London 
WA1 1DP 
UK 

دستور SQL زیر همه مشتریان را انتخاب می کند که CustomerName با "a" پایان می یابد:

SELECT * FROM Customers
WHERE CustomerName LIKE '%a';

7 رکورد انتخاب شد

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Antonio Moreno Taquería 
Antonio Moreno 
Mataderos 2312 
México D.F. 
05023 
Mexico 
13 
Centro comercial Moctezuma 
Francisco Chang 
Sierras de Granada 9993 
México D.F. 
05022 
Mexico 
30 
Godos Cocina Típica 
José Pedro Freyre 
C/ Romero, 33 
Sevilla 
41101 
Spain 
61 
Que Delícia 
Bernardo Batista 
Rua da Panificadora, 12 
Rio de Janeiro 
02389-673 
Brazil 
62 
Queen Cozinha 
Lúcia Carvalho 
Alameda dos Canàrios, 891 
São Paulo 
05487-020 
Brazil 
88 
Wellington Importadora 
Paula Parente 
Rua do Mercado, 12 
Resende 
08737-363 
Brazil 
90 
Wilman Kala 
Matti Karttunen 
Keskuskatu 45 
Helsinki 
21240 
Finland 

دستور SQL زیر همه مشتریان را با CustomerName انتخاب می کند که "OR" در هر موقعیت:

SELECT * FROM Customers WHERE
CustomerName LIKE '%or%';
CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Antonio Moreno Taquería 
Antonio Moreno 
Mataderos 2312 
México D.F. 
05023 
Mexico 
Around the Horn 
Thomas Hardy 
120 Hanover Sq. 
London 
WA1 1DP 
UK 
36 
Hungry Coyote Import Store 
Yoshi Latimer 
City Center Plaza 516 Main St. 
Elgin 
97827 
USA 
40 
La corne d'abondance 
Daniel Tonini 
67, avenue de l'Europe 
Versailles 
78000 
France 
43 
Lazy K Kountry Store 
John Steel 
12 Orchestra Terrace 
Walla Walla 
99362 
USA 
52 
Morgenstern Gesundkost 
Alexander Feuer 
Heerstr. 22 
Leipzig 
04179 
Germany 
53 
North/South 
Simon Crowther 
South House 300 Queensbridge 
London 
SW7 1RZ 
UK 
55 
Old World Delicatessen 
Rene Phillips 
2743 Bering St. 
Anchorage 
99508 
USA 
72 
Seven Seas Imports 
Hari Kumar 
90 Wadhurst Rd. 
London 
OX15 4NB 
UK 
80 
Tortuga Restaurante 
Miguel Angel Paolino 
Avda. Azteca 123 
México D.F. 
05033 
Mexico 
88 
Wellington Importadora 
Paula Parente 
Rua do Mercado, 12 
Resende 
08737-363 
Brazil 

دستور SQL زیر همه مشتریان را با CustomerName انتخاب می کند که دارای رتبه "r" در موقعیت دوم هستند:

SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Around the Horn 
Thomas Hardy 
120 Hanover Sq. 
London 
WA1 1DP 
UK 
17 
Drachenblut Delikatessend 
Sven Ottlieb 
Walserweg 21 
Aachen 
52066 
Germany 
20 
Ernst Handel 
Roland Mendel 
Kirchgasse 6 
Graz 
8010 
Austria 
25 
Frankenversand 
Peter Franken 
Berliner Platz 43 
München 
80805 
Germany 
26 
France restauration 
Carine Schmitt 
54, rue Royale 
Nantes 
44000 
France 
27 
Franchi S.p.A. 
Paolo Accorti 
Via Monte Bianco 34 
Torino 
10100 
Italy 
32 
Great Lakes Food Market 
Howard Snyder 
2732 Baker Blvd. 
Eugene 
97403 
USA 
33 
GROSELLA-Restaurante 
Manuel Pereira 
5ª Ave. Los Palos Grandes 
Caracas 
1081 
Venezuela 
60 
Princesa Isabel Vinhoss 
Isabel de Castro 
Estrada da saúde n. 58 
Lisboa 
1756 
Portugal 
81 
Tradição Hipermercados 
Anabela Domingues 
Av. Inês de Castro, 414 
São Paulo 
05634-030 
Brazil 
82 
Trail's Head Gourmet Provisioners 
Helvetius Nagy 
722 DaVinci Blvd. 
Kirkland 
98034 
USA 

دستور SQL زیر همه مشتریان را با CustomerName انتخاب می کند که با "a" شروع می شود و حداقل 3 حرف طول دارند:

SELECT * FROM Customers
WHERE CustomerName
LIKE 'a_%_%';

4 رکورد انتخاب شد.

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Alfreds Futterkiste 
Maria Anders 
Obere Str. 57 
Berlin 
12209 
Germany 
Ana Trujillo Emparedados y helados 
Ana Trujillo 
Avda. de la Constitución 2222 
México D.F. 
05021 
Mexico 
Antonio Moreno Taquería 
Antonio Moreno 
Mataderos 2312 
México D.F. 
05023 
Mexico 
Around the Horn 
Thomas Hardy 
120 Hanover Sq. 
London 
WA1 1DP 
UK 

دستور SQL زیر تمام مشتریان را با نام ContactName که با "a" شروع می شود و با "o" به پایان می رسد را انتخاب می کند:

SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';

3 رکورد انتخاب شد .

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Ana Trujillo Emparedados y helados 
Ana Trujillo 
Avda. de la Constitución 2222 
México D.F. 
05021 
Mexico 
Antonio Moreno Taquería 
Antonio Moreno 
Mataderos 2312 
México D.F. 
05023 
Mexico 
69 
Romero y tomillo 
Alejandra Camino 
Gran Vía, 1 
Madrid 
28001 
Spain 

دستور SQL زیر همه مشتریان را با CustomerName انتخاب می کند که با "a" شروع نمی شود:

SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'a%'

87 رکورد انتخاب شد .

نظر شما

لطفا نام و نام خانوادگی خود را وارد کنید
لطفا ایمیل خود را وارد کنید لطفا ایمیل صحیح وارد کنید.
لطفا متن نظر خود را وارد کنید
>

مقالات و دروس

به خبرنامه مدرسه طراحی وب ایران (وب مهراز) بپیوندید.

لطفا شماره همراه صحیح وارد کنید.
لطفا ایمیل صحیح وارد کنید.

مقالات مرتبط