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

🛠 کاراکترهای جایگزین (Wildcards) در LIKE

در SQL دو کاراکتر خاص برای ساخت الگوهای جستجو وجود دارد:

1️⃣ علامت درصد %:

  • هر تعداد کاراکتر (حتی صفر کاراکتر) را جایگزین می‌کند.
  • مثال: 'a%' یعنی هر متنی که با a شروع شود.
  • مثال: '%L%' یعنی هر متنی که شامل L باشد.

2️⃣ علامت زیرخط _:

  • فقط یک کاراکتر را جایگزین می‌کند.
  • مثال: 'L_nd' یعنی هر متنی که با L شروع شده، در جایگاه دوم هر کاراکتری باشد، و سپس nd بیاید.

🔍 مثال‌های عملی از LIKE

1. جستجوی نام‌هایی که با حرف خاصی شروع می‌شوند

اگر بخواهیم تمام مشتریانی که نامشان با A شروع می‌شود را پیدا کنیم:

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

👆 این کوئری تمام نام‌هایی که با “A” شروع شده‌اند را نمایش می‌دهد.


2. جستجوی شهرهایی که یک حرف خاص در هرجای آن قرار دارد

فرض کنید می‌خواهیم تمام شهرهایی که حاوی حرف L هستند را پیدا کنیم:

SELECT * FROM Customers
WHERE City LIKE '%L%';

👆 در اینجا %L% یعنی هر رشته‌ای که در هر جایی از آن، حرف L وجود داشته باشد.


3. پیدا کردن مقادیر با تعداد کاراکتر مشخص

فرض کنید می‌خواهیم تمام مشتریانی را پیدا کنیم که نام شهرشان با “L” شروع شده، بعد از آن یک کاراکتر باشد، سپس “nd” بیاید، و بعد از آن دو کاراکتر دیگر باشد:

SELECT * FROM Customers
WHERE City LIKE 'L_nd__';

👆 در اینجا:

  • L یعنی شهر با L شروع شود.
  • _ یعنی یک کاراکتر جایگزین شود.
  • nd باید دقیقاً وجود داشته باشد.
  • __ یعنی بعد از “nd” دقیقاً دو کاراکتر دیگر باشد.

🔄 استفاده از LIKE برای فیلترهای مختلف

🔹 جستجوی مواردی که به یک حرف خاص ختم می‌شوند

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

👆 پیدا کردن تمام مشتریانی که نامشان به a ختم می‌شود.


🔹 جستجوی مواردی که با یک حرف شروع و با یک حرف خاص تمام می‌شوند

SELECT * FROM Customers
WHERE CustomerName LIKE 'b%s';

👆 پیدا کردن تمام مشتریانی که نامشان با b شروع و با s تمام می‌شود.


🔹 جستجوی مواردی که حاوی یک عبارت خاص هستند

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

👆 پیدا کردن تمام مشتریانی که “or” در نامشان وجود دارد (مثل “Antonio Moreno”).


🔹 جستجوی ترکیبی با چند شرط

اگر بخواهیم تمام مشتریانی را پیدا کنیم که یا با “a” شروع می‌شوند یا با “b”، از OR استفاده می‌کنیم:

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

🚀 چند نکته مهم درباره LIKE

✅ می‌توان wildcard‌ها را با هم ترکیب کرد.
% برای هر تعداد کاراکتر و _ برای دقیقاً یک کاراکتر است.
✅ بدون wildcard، مقدار باید دقیقاً مطابق مقدار مشخص‌شده باشد.

🎯 مثال پایانی: جستجوی مشتریانی که در اسپانیا هستند، بدون wildcard

SELECT * FROM Customers
WHERE Country LIKE 'Spain';

👆 چون هیچ کاراکتر جایگزینی (% یا _) استفاده نشده، مقدار دقیقاً باید “Spain” باشد.


🗂 جدول نمونه (Customers Table)

جدولی که در مثال‌ها استفاده شد، شامل اطلاعات زیر است:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden