استفاده از LIKE و Wildcards

جستجوی پیشرفته در SQL با LIKE و Wildcards

در پایگاه‌داده‌های رابطه‌ای مانند MySQL، عملگر LIKE به همراه Wildcards ابزاری قدرتمند برای جستجوی الگوهای متن‌باز است. این تکنیک زمانی مفید است که بخواهیم رکوردهایی را پیدا کنیم که دقیقاً با یک عبارت مشخص مطابقت ندارند، اما الگوی مشابهی دارند.

نکته کلیدی: Wildcards کاراکترهای خاصی هستند که جایگزین سایر کاراکترها در رشته می‌شوند و انعطاف‌پذیری جستجو را افزایش می‌دهند.

انواع Wildcards در SQL

کاراکتر توضیحات مثال
% جایگزین صفر یا چند کاراکتر 'آ%' (کلماتی که با "آ" شروع می‌شوند)
_ جایگزین دقیقاً یک کاراکتر '_هران' (کلماتی مانند "تهران" یا "اهران")

مثال‌های کاربردی

فرض کنید جدولی به نام products داریم که شامل فیلد name است. نمونه‌هایی از کاربرد LIKE:

  1. یافتن محصولاتی که نام آن‌ها با "کتاب" شروع می‌شود:
    SELECT * FROM products WHERE name LIKE 'کتاب%';
  2. جستجوی محصولاتی که در نام خود "دیجیتال" دارند:
    SELECT * FROM products WHERE name LIKE '%دیجیتال%';
  3. یافتن رکوردهایی که دقیقاً ۵ کاراکتر دارند:
    SELECT * FROM products WHERE name LIKE '_____';

نکات مهم در استفاده از LIKE

  • عملگر LIKE به حروف بزرگ و کوچک حساس نیست مگر اینکه تنظیمات COLLATION متفاوتی داشته باشید
  • استفاده بیش از حد از Wildcards (خصوصاً %) می‌تواند عملکرد پایگاه داده را کاهش دهد
  • برای جستجوی دقیق‌تر می‌توانید از ترکیب چند Wildcard استفاده کنید
  • در برخی سیستم‌ها می‌توان از NOT LIKE برای معکوس کردن شرط استفاده کرد

برای یادگیری بیشتر درباره عملگرهای شرطی در SQL می‌توانید اینجا را بررسی نمایید.

بهینه‌سازی عملکرد: در جداول بزرگ، استفاده از فیلدهای ایندکس‌شده همراه با LIKE می‌تواند سرعت جستجو را بهبود بخشد. همچنین محدود کردن دامنه جستجو با WHERE اضافی توصیه می‌شود.