شرح صفوف ومحتوى الفقرة
يُنفّذ المعامل LIKE مطابقة الأنماط النصية باستخدام رمزي بحث قياسيين. يطابق رمز النسبة المئوية % أي سلسلة مكونة من صفر أو أكثر من الأحرف.
- مطابقة البادئة
'MySQL%': تطابق النصوص التي تبدأ بكلمةMySQL، ويستطيع محرك InnoDB هنا استخدام فهرس B-Tree بكفاءة لأن بداية النص معروفة. - مطابقة النهاية أو الوسط
'%SQL%': وضع الرمز%في بداية النمط يمنع استخدام الفهرس العادي ويجبر المحرك على فحص الصفوف واحداً تلو الآخر.
انتبه إلى أن الرمز % لا يطابق القيمة الفارغة NULL أبداً؛ فالتعبير NULL LIKE '%' يُعيد NULL.
البحث بالرموز البديلة في LIKE والتعابير النمطية REGEXP
يستفيد النمط البادئ بحروف ثابتة 'abc%' من الفهرس، بينما يتطلب البدء بـ '%' أو 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';