الگویابی (Like)
در SQL، «عملگر LIKE» برای الگویابی (Pattern Match) استفاده می شود. یعنی دنبال شکل خاصی از متن می گردیم. مثلا اسم هایی که با "A" شروع می شوند. «وایلدکارت (Wildcard)» جایگزین کاراکترهای ناشناخته است.
تعریف عملگر LIKE و وایلدکارت ها
LIKE داخل شرط WHERE به دنبال الگو می گردد. علامت % یعنی صفر تا بی نهایت کاراکتر. علامت _ یعنی دقیقا یک کاراکتر.
شروع با یک حرف خاص (Starts With)
برای نام هایی که با حرف خاص شروع می شوند، % را آخر بگذار.
SELECT *
FROM Customers
WHERE CustomerName LIKE 'a%';
سینتکس LIKE
الگوی کلی نوشتن LIKE به شکل زیر است.
SELECT column1, column2
FROM table_name
WHERE columnN LIKE pattern;
Wildcard «_» برای یک کاراکتر
زیر الگو دقیقا یک جای خالی می گذارد. مثل حدس یک حرف.
SELECT *
FROM Customers
WHERE City LIKE 'L_nd__';
Wildcard «%» برای چند کاراکتر
این علامت هر تعداد کاراکتر را می پوشاند؛ حتی هیچ کاراکتری.
SELECT *
FROM Customers
WHERE City LIKE '%L%';
شروع با عبارت دوحرفی
می توانی ابتدای نام را دقیق تر تعیین کنی.
SELECT *
FROM Customers
WHERE CustomerName LIKE 'La%';
ترکیب چند شرط با AND/OR
می توانی چند الگو را با هم ترکیب کنی.
SELECT *
FROM Customers
WHERE CustomerName LIKE 'a%'
OR CustomerName LIKE 'b%';
پایان با یک حرف خاص (Ends With)
برای پایان، % را اول عبارت بگذار.
SELECT *
FROM Customers
WHERE CustomerName LIKE '%a';
هم شروع و هم پایان
می توانی شروع و پایان را همزمان کنترل کنی.
SELECT *
FROM Customers
WHERE CustomerName LIKE 'b%s';
شامل کردن یک بخش از متن (Contains)
برای «حاوی بودن»، دو طرف عبارت % بگذار.
SELECT *
FROM Customers
WHERE CustomerName LIKE '%or%';
ترکیب وایلدکارت ها
می توانی % و _ را باهم استفاده کنی.
SELECT *
FROM Customers
WHERE CustomerName LIKE 'a__%';
یا جایگاه دقیق یک حرف را مشخص کن.
SELECT *
FROM Customers
WHERE CustomerName LIKE '_r%';
بدون وایلدکارت؛ تطبیق دقیق
اگر وایلدکارت نگذاری، باید کاملا همان متن باشد.
SELECT *
FROM Customers
WHERE Country LIKE 'Spain';
نکته: برای آشنایی با وایلدکارت ها این بخش را ببین. همچنین صفحه شرط WHERE پایه ها را روشن می کند. برای مرور مفاهیم مرتبط با جستجوی الگو با LIKE این صفحه مرجع است.
گام های تمرینی سریع
- فهرست مشتریان را نشان بده.
- یک شرط LIKE ساده اضافه کن.
- الگو را تغییر بده و نتیجه را مقایسه کن.
جمع بندی سریع
- عملگر LIKE برای الگویابی متن است.
- % یعنی هر تعداد کاراکتر.
- _ یعنی دقیقا یک کاراکتر.
- شروع، پایان، یا شامل را کنترل کن.
- بدون وایلدکارت، تطبیق باید دقیق باشد.