انتقل إلى محتوى الدرس

Wildcard Search with LIKE Percent البحث برمز النسبة المئوية

طابق صفراً أو أكثر من الأحرف في الأعمدة النصية باستخدام رمز النسبة المئوية % مع LIKE و NOT LIKE.
1 صفوف تعليمية
MySQL
8 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يُنفّذ المعامل LIKE مطابقة الأنماط النصية باستخدام رمزي بحث قياسيين. يطابق رمز النسبة المئوية % أي سلسلة مكونة من صفر أو أكثر من الأحرف.

  • مطابقة البادئة 'MySQL%': تطابق النصوص التي تبدأ بكلمة MySQL، ويستطيع محرك InnoDB هنا استخدام فهرس B-Tree بكفاءة لأن بداية النص معروفة.
  • مطابقة النهاية أو الوسط '%SQL%': وضع الرمز % في بداية النمط يمنع استخدام الفهرس العادي ويجبر المحرك على فحص الصفوف واحداً تلو الآخر.

انتبه إلى أن الرمز % لا يطابق القيمة الفارغة NULL أبداً؛ فالتعبير NULL LIKE '%' يُعيد NULL.

البحث بالرموز البديلة في LIKE والتعابير النمطية REGEXP

يستفيد النمط البادئ بحروف ثابتة 'abc%' من الفهرس، بينما يتطلب البدء بـ '%' أو REGEXP فحص الصفوف
مخطط توضيحي لدرس مطابقة الأنماط النصية عبر LIKE والتعابير النمطية REGEXP
مخطط توضيحي لدرس مطابقة الأنماط النصية عبر LIKE والتعابير النمطية REGEXP
SQL
-- Prefix search (index-friendly) vs substring search
SELECT user_id, username, email
FROM users
WHERE username LIKE 'dev%';

SELECT user_id, email
FROM users
WHERE email NOT LIKE '%@example.org';