نحوه استفاده از like در عبارت select در sql
اپراتور LIKE در SQL Server
از این اپراتور در کنار WHERE در عبارتهای SQL SERVER برای جستجو استفاده می شود. در صورت استفاده از اپراتور LIKE در تعداد رکوردهای بالا ممکن است بار زیادی بر روی SERVER ایجاد شود. دلیلش هم این است که اپراتور LIKE رکورد به رکورد (البته روی رکوردهایی که قفل نشده اند) عملیات اسکن و جستجو را انجام می دهد.
در هنگام استفاده از اپراتور LIKE میتوان از دو کاراکتر ویژه برای عملیات جستجو استفاده کرد: علامت % و علامت _ که علامت _ میتواند به جای یک کاراکتر بنشیند.
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
در کنار عبارت LIKE میتوان از and و or و not هم استفاده کرد.
چند مثال از LIKE در ذیل آورده شده است:
اپراتور LIKE |
شرح |
WHERE CustomerName LIKE 'a%' |
جستجو در عباراتی که با "a" شروع شده است |
WHERE CustomerName LIKE '%a' |
جستجو در عباراتی که با "a" خاتمه یافته است |
WHERE CustomerName LIKE '%or%' |
جستجو در عباراتی که کلمه "or" را در هر جای خود دارند |
WHERE CustomerName LIKE '_r%' |
جستجو در عباراتی که حرف "r" را در دومین حرف از کلمه خود دارند |
WHERE CustomerName LIKE 'a_%_%' |
جستجو در عبارتهایی که با حرف "a" شروع شده اند و تعداد سه حرف دارند |
WHERE ContactName LIKE 'a%o' |
جستجو در عباراتی که با "a" شروع شده اند و با "o" خاتمه یافته اند |
در مثال زیر مشتریانی که با حرف a شروع شده اند نمایش داده می شوند:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
در مثال زیر نام مشتریانی که با حرف a خاتمه یافته اند نمایش داده می شوند:
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';
در مثال زیر نام مشتریانی که دارای کلمه or در هر بخش خود هستند نمایش داده می شوند.
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';
در مثال زیر مشتریانی که در حرف دومشان a دارند نمایش داده می شوند:
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
در مثال ذیل مشتریانی که دارای حداقل سه حرف همستند و با a شروع میشوند نمایش داده میشوند:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a_%_%';
CustomerID
|
CustomerName
|
ContactName
|
City
|
Country
|
1
|
Alfreds Futterkiste
|
Maria Anders
|
Berlin
|
Germany
|
2
|
Ana Trujillo Emparedados y helados
|
Ana Trujillo
|
México D.F.
|
Mexico
|
3
|
Antonio Moreno Taquería
|
Antonio Moreno
|
México D.F.
|
Mexico
|
4
|
Around the Horn
|
Thomas Hardy
|
London
|
UK
|
در مثال زیر مشتریانی که نام آنها با a شروع میشود و به e ختم میشود نمایش داده می شوند.
SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';
در مثال زیر نام مشتریانی که با a شروع نشده اند نمایش داده می شوند
SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'a%';
CustomerID
|
CustomerName
|
ContactName
|
City
|
Country
|
5
|
Berglunds snabbköp
|
Christina Berglund
|
Luleå
|
Sweden
|
6
|
Blauer See Delikatessen
|
Hanna Moos
|
Mannheim
|
Germany
|
7
|
Blondel père et fils
|
Frédérique Citeaux
|
Strasbourg
|
France
|
8
|
Bólido Comidas preparadas
|
Martín Sommer
|
Madrid
|
Spain
|
9
|
Bon app'
|
Laurence Lebihans
|
Marseille
|
France
|