1. نظرة عامة على MySQL LIKE
يُستخدم عامل MySQL LIKE للبحث عن بيانات في قاعدة البيانات تتطابق مع نمط محدد. يُستَخدم LIKE في جملة SQL WHERE ويسمح لك بتحديد شروط البحث بناءً على جزء أو كل السلسلة. على سبيل المثال، يكون مفيدًا للعثور على “أسماء تبدأ بحرف معين” أو “رموز منتجات تحتوي على أحرف محددة”.
استخدامات عامل LIKE
- عمليات البحث عن تطابق جزئي
- عمليات البحث عن نمط محدد
- تصفية البيانات
نظرًا لأن هذا العامل متخصص في مطابقة الأنماط، فهو أساسي للبحث الفعال ومعالجة البيانات في قاعدة البيانات.
2. الصياغة الأساسية لـ MySQL LIKE
الصياغة الأساسية لاستخدام عامل LIKE في MySQL هي كما يلي:
SELECT column_name FROM table_name WHERE column_name LIKE 'pattern';
أمثلة على استخدام LIKE
- البحث عن بيانات تبدأ بحرف محدد
SELECT * FROM users WHERE name LIKE 'A%'; - البحث عن بيانات تحتوي على سلسلة محددة
SELECT * FROM products WHERE product_code LIKE '%123%';
غالبًا ما يُستخدم عامل LIKE مع أحرف البدل مثل % و _ لتمكين عمليات بحث أكثر مرونة.
3. أحرف البدل المستخدمة مع LIKE
يستخدم عامل LIKE أحرف البدل لتحديد أنماط البحث. يدعم MySQL نوعين رئيسيين من أحرف البدل:
حرف البدل %
- يطابق أي تسلسل من الأحرف (بما في ذلك عدم وجود أحرف)
SELECT * FROM users WHERE email LIKE '%@example.com';هذا المثال يسترجع جميع عناوين البريد الإلكتروني التي تنتهي بـ@example.com.
حرف البدل _
- يطابق أي حرف واحد
SELECT * FROM products WHERE product_code LIKE '_A%';هذا المثال يسترجع جميع رموز المنتجات التي يكون الحرف الثاني فيها هوA.
باستخدام أحرف البدل بشكل مناسب، يمكنك تصفية البيانات في قاعدة البيانات بكفاءة.
4. تقنيات مطابقة الأنماط
يسمح استخدام عامل LIKE مع أحرف البدل بطرق مختلفة لمطابقة الأنماط.
يبدأ بـ
- البحث عن بيانات حيث تبدأ السلسلة بنمط محدد
SELECT * FROM customers WHERE name LIKE 'John%';هذا يجد جميع أسماء العملاء التي تبدأ بـJohn.
ينتهي بـ
- البحث عن بيانات حيث تنتهي السلسلة بنمط محدد
SELECT * FROM files WHERE filename LIKE '%.pdf';هذا يجد جميع أسماء الملفات التي تنتهي بـ.pdf.
يحتوي على
- البحث عن بيانات تحتوي على نمط محدد
SELECT * FROM documents WHERE content LIKE '%MySQL%';هذا يجد جميع المستندات التي تحتوي على السلسلةMySQL.
5. هروب الأحرف الخاصة في LIKE
في عامل LIKE، يعتبر % و _ أحرفًا ذات معانٍ خاصة كأحرف بدل. للبحث عنها كأحرف عادية، تحتاج إلى استخدام حرف هروب.
كيفية الهروب
- مثال على البحث باستخدام حرف هروب
SELECT * FROM filenames WHERE filename LIKE 'file_%' ESCAPE '';هذا الاستعلام يبحث عن جميع أسماء الملفات التي تبدأ بـfile_. عادةً يُعامل_كحرف بدل، ولكن باستخدام حرف هروب يتم التعامل معه كحرف عادي.
6. الاستخدامات المتقدمة لـ LIKE
يمكن دمج عامل LIKE مع عبارات SQL أخرى لإجراء عمليات بحث أكثر تقدمًا.
الجمع مع JOIN
- البحث عن بيانات ذات صلة بين الجداول
SELECT orders.id, customers.name FROM orders JOIN customers ON orders.customer_id = customers.id WHERE customers.name LIKE '%Smith%';هذا الاستعلام يسترجع الطلبات من العملاء الذين تحتوي أسماؤهم علىSmith.
النفي باستخدام NOT LIKE
- البحث عن بيانات لا تتطابق مع نمط محدد
SELECT * FROM emails WHERE address NOT LIKE '%@spam.com';هذا يسترجع جميع عناوين البريد الإلكتروني التي لا تنتهي بـ@spam.com.
7. أفضل الممارسات لاستخدام LIKE
هناك عدة نقاط يجب مراعاتها وأفضل الممارسات عند استخدام عامل LIKE.
التأثير على الأداء
- استخدام عامل
LIKEعلى مجموعات بيانات كبيرة قد يبطئ الأداء. على وجه الخصوص، بدء النمط بـ%يمنع استخدام الفهارس، مما قد يجعل الاستعلامات أبطأ.
استخدام الفهارس المناسبة
- فكر في إنشاء فهارس عند الضرورة لتحسين الأداء.
8. الاستخدامات الشائعة لـ MySQL LIKE
يتم استخدام عامل LIKE في MySQL في مجموعة متنوعة من السيناريوهات مثل:
البحث عن العملاء
- عند البحث بناءً على أسماء العملاء أو عناوين البريد الإلكتروني.
البحث عن رمز المنتج
- عند البحث عن منتجات بناءً على جزء من رمز المنتج.
9. الملخص
عامل LIKE هو أداة قوية لمطابقة الأنماط في MySQL. غطت هذه المقالة كل شيء من الصياغة الأساسية إلى الاستخدام المتقدم وتحسين الأداء. استخدم عامل LIKE بفعالية للبحث والتلاعب الفعال في قواعد البيانات.
10. الأسئلة المتكررة
س1: ما الفرق بين LIKE و =؟
ج1: يُستخدم = للمطابقات الدقيقة، بينما يُستخدم LIKE للمطابقات الجزئية ومطابقة الأنماط.
س2: هل LIKE حساس لحالة الأحرف؟
ج2: بشكل افتراضي، LIKE في MySQL غير حساس لحالة الأحرف. ومع ذلك، يمكنك جعله حساسًا لحالة الأحرف باستخدام كلمة المفتاح BINARY.
س3: هل يمكن استخدام عامل LIKE مع الأرقام؟
ج3: يُستخدم عادةً مع السلاسل النصية، ولكن يمكن استخدامه مع الأرقام إذا تم تخزينها كسلاسل نصية.

