SQL LIKE Operator

🔹 تعریف

  • عملگر LIKE برای جستجوی الگو (Pattern Matching) در داده‌های متنی استفاده می‌شود.

  • معمولاً همراه WHERE به کار می‌رود.

  • از wildcards (کاراکترهای ویژه) برای ساختن الگوها استفاده می‌کنیم.

🔹 Wildcards در SQL

کاراکترتوضیح
%هر تعداد کاراکتر (صفر، یک یا بیشتر)
_فقط یک کاراکتر تکی
[abc]هر کاراکتری که داخل براکت باشد (فقط در SQL Server/Oracle)
[^abc] یا [!abc]هر کاراکتری به جز موارد داخل براکت

1️⃣ استفاده از %

مثال: شروع با یک حرف خاص

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

🔹 همه اسامی که با A شروع می‌شوند (Ali, Amir, ...).

مثال: پایان با یک حرف خاص

SELECT * FROM Customers WHERE Name LIKE '%i';

🔹 همه اسامی که به i ختم می‌شوند (Ali, Vali, ...).

مثال: شامل یک بخش خاص

SELECT * FROM Customers WHERE Name LIKE '%ar%';

🔹 همه اسامی که شامل "ar" هستند (Sara, Maryam, ...).

2️⃣ استفاده از _ (یک کاراکتر)

SELECT * FROM Customers WHERE Name LIKE 'A_i';

🔹 اسامی ۳ حرفی که با A شروع و با i تمام شوند (Ali, Ami و …).

3️⃣ استفاده از [ ] (فقط در SQL Server/Oracle)

SELECT * FROM Customers WHERE Name LIKE '[AS]%';

🔹 همه اسامی که با A یا S شروع شوند (Ali, Sara, …).

4️⃣ استفاده از NOT LIKE

SELECT * FROM Customers WHERE Name NOT LIKE 'A%';

🔹 همه اسامی که با A شروع نمی‌شوند.

🔹 مثال واقعی

جدول Products:

ProductIDName
1iPhone 14
2Galaxy S23
3AirPods
4iPad Pro

کوئری:

SELECT * FROM Products WHERE Name LIKE 'i%';

🔹 خروجی:

  • iPhone 14

  • iPad Pro

✅ خلاصه:

  • % → هر تعداد کاراکتر

  • _ → فقط یک کاراکتر

  • [ ] → مجموعه کاراکترها (SQL Server/Oracle)

  • NOT LIKE → جستجو برعکس