عملگر LIKE در یک عبارت WHERE برای جستجوی یک الگوی مشخص در یک ستون استفاده می شود. دو علامت های علامت استفاده شده در ارتباط با اپراتور LIKE وجود دارد:
٪ علامت درصد نشان دهنده صفر، یک یا چند کاراکتر است
_ برجسته نشان دهنده یک شخصیت است
توجه داشته باشید: MS Access از علامت سوال (؟) به جای نشانگر (_) استفاده می کند.
نشانه درصد و زیر خط کش نیز می تواند در ترکیب استفاده شود!
ساختار LIKE در SQL
LECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
نکته: شما همچنین می توانید هر تعداد شرایط را با استفاده از عملگرهای AND یا OR ترکیب کنید.
در اینجا چند نمونه از اپراتورهای 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
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
دستور SQL زیر همه مشتریان را انتخاب می کند که CustomerName با "a" پایان می یابد:
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';
7 رکورد انتخاب شد
CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
3
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
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
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
4
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
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
دستور SQL زیر تمام مشتریان را با نام ContactName که با "a" شروع می شود و با "o" به پایان می رسد را انتخاب می کند:
SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';
3 رکورد انتخاب شد .
CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
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
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 رکورد انتخاب شد .
نظر شما
>