استخدام CONCAT () في جملة WHERE للبحث المحسن
من المهام الشائعة في الاستعلام عن قاعدة البيانات البحث عن البيانات عبر أعمدة متعددة. على سبيل المثال، في جدول يحتوي على أعمدة منفصلة للاسم الأول واسم العائلة، قد ترغب في مطابقة مصطلح بحث مع كلا العمودين.
ومع ذلك، إذا كان استعلام بحث المستخدم يحتوي على اسم أول واسم عائلة مدمجين مفصولين بـ مسافة، ستعيد مقارنة LIKE التقليدية جميع الأفراد الذين لديهم مطابقة للاسم الأول أو الأخير. لتحسين البحث، يمكنك استخدام وظيفة MySQL CONCAT().
النهج الأصلي والقيود:
في البداية، استخدم الاستعلام مقارنات LIKE منفصلة على الاسم الأول والاسم الأول. أعمدة اسم_الأخير، مما يسمح بالمطابقات في أي من العمودين:
select * from table where first_name like '%$search_term%' or last_name like '%$search_term%';
ومع ذلك، هذا يعاني هذا الأسلوب من مشكلة استرداد السجلات بناءً على مطابقات الكلمة المفردة، مثل تضمين "Larry" في مجموعة النتائج حتى عندما يكون مصطلح البحث "Larry Smith". ) الوظيفة:
لمعالجة هذا القيد، تم تعديل الاستعلام لاستخدام وظيفة CONCAT()، التي تقوم بتسلسل تعبيرات متعددة في سلسلة واحدة:
select * from جدول حيث concat_ws(' ',first_name,last_name) مثل '%$search_term%';
select * from table where concat_ws(' ',first_name,last_name) like '%$search_term%';
اعتبارات التنفيذ:
بينما يجب أن يعمل الاستعلام على النحو المنشود، تجدر الإشارة إلى ذلك أن تنفيذ وظيفة CONCAT() في نهاية الاستعلام قد يؤدي إلى أداء أفضل من وضعها في منتصف الاستعلام.في الختام، فإن استخدام وظيفة MySQL CONCAT() في جملة WHERE يوفر المزيد نهج دقيق للبحث عبر أعمدة متعددة، مما يوفر نتائج مخصصة تلبي غرض المستخدم.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3