البرمجة

استعلامات Laravel: بناء استعلامات قوية

الاستعلام الذي تحاول صياغته في Laravel يبدو واعدًا، حيث تحتاج إلى استعلام يستخدم العديد من الشروط مع عمليات مختلفة مثل AND و OR، بالإضافة إلى استخدام عملية LIKE للبحث في نص محدد. في هذه الحالة، تريد البحث عن السجلات التي تحتوي على كلمات مفتاحية معينة في حقل محدد.

لديك بالفعل جزء من الاستعلام الذي يبدو جيدًا، ولكن الجزء الذي يتعلق بالـLIKE يحتاج إلى تعديل بسيط لضمان عمل البحث بالشكل المطلوب. في الوقت الحالي، يبدو أنك تستخدم orWhere مع مصفوفة تحتوي على قيم متكررة لنفس المفتاح، وهذا لن يؤدي إلى النتائج المطلوبة.

لتنفيذ عملية الـLIKE بشكل صحيح، يجب تغيير طريقة تكوين المصفوفة التي تمررها إلى الـorWhere لتضمن وجود عمليات LIKE. يمكنك استخدام الدالة where مع إعدادات مخصصة لتحقيق ذلك.

إليك كيفية تحسين الجزء المعني من الاستعلام:

php
$todaysReferrals = DB::table('link') ->join('daily_link', 'link.lnk_id', '=', 'daily_link.dlk_lnkid') ->join('demographic', 'link.lnk_dmgid', '=', 'demographic.dmg_id') ->join('admission', 'link.lnk_admid', '=', 'admission.adm_id') ->join('or_call', 'admission.adm_calid', '=', 'or_call.cal_id') ->join('admission_score', 'admission.adm_scoreid', '=', 'admission_score.ascore_id') ->join('diagnosis', 'link.lnk_dgnid', '=', 'diagnosis.dgn_id') ->join('outcome', 'link.lnk_otcid', '=', 'outcome.otc_id') ->where($matchThese) ->where(function($query) use ($orThose) { $query->where('outcome.otc_outcome', 'LIKE', '%ICU%') ->orWhere('outcome.otc_outcome', 'LIKE', '%I.C.U%'); }) ->get();

في هذا التحسين، قمنا بتضمين دالة where مع استخدام LIKE للبحث عن الكلمات المفتاحية المحتملة. باستخدام الدالة المتعددة orWhere داخل الدالة where، يتم تضمين الشروط المطلوبة بينها بشكل صحيح للبحث عن الكلمات المفتاحية في الحقل المعني.

بعد تطبيق هذا التعديل، يجب أن يعمل الاستعلام بشكل صحيح ويعيد النتائج المتوقعة التي تحتوي على الكلمات المفتاحية المحددة في حقل outcome.otc_outcome.

المزيد من المعلومات

بالطبع، لنستمر في توسيع المقال لإضافة معلومات إضافية حول الاستعلام وتفسير كيف يعمل وماذا يعني كل جزء منه.

عند بناء الاستعلام في Laravel، يتعين عليك فهم الأساسيات حول كيفية تشكيل الشروط والمعاملات المختلفة. في الاستعلام الذي تقوم ببنائه، تستخدم العديد من الشروط مثل JOIN لربط الجداول معًا و WHERE لتحديد الشروط التي يجب تلبيتها. بالإضافة إلى ذلك، تستخدم orWhere لتحديد شروط إضافية تجمع بينها بواسطة OR.

في جزء الاستعلام الذي يتعلق بالـLIKE، يبحث Laravel عن السجلات التي تحتوي على الكلمات المحددة في حقل outcome.otc_outcome. باستخدام % قبل وبعد الكلمات المفتاحية في LIKE، يعني أنه يجب أن تظهر الكلمة في أي مكان داخل النص، لذا لو وجدت ICU أو I.C.U في أي مكان في النص، فإن السجل سيكون مطابقًا.

من المهم أن تتأكد من ترتيب الشروط بشكل صحيح، حيث أن استخدام الدوال المتعددة مثل where داخل دوال أخرى يمكن أن يحدد ترتيب تقييدات البحث وفقًا للمنطق المناسب.

باستخدام هذه الإرشادات وفهم الأساسيات، يمكنك بناء استعلامات قوية وفعالة في Laravel للبحث واسترجاع البيانات بشكل دقيق وفعال، مما يسهم في تحسين أداء تطبيقاتك وجعلها أكثر فاعلية.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر