温馨提示:本文翻译自stackoverflow.com,查看原文请点击:database - LARAVEL 5.8
database eloquent laravel laravel-5.8 laravel-query-builder

database - 拉拉夫5.8

发布于 2020-04-16 11:36:18

我的数据库表中有一列,其中包含多个逗号分隔的值,下面有一个逗号分隔的数组:

$possibleSubMods = ["Pre-Op","Perioperative","PREOP","Endoscopy Nurse","Endoscopy","Endoscopy Lab"];

并且column具有以下值:

column name: subModality
Rows:
Post Anesthesia Care Unit Nurse (PACU), Pre-Op
Pre-Op, Endoscopy Nurse
PREOP, Endoscopy Lab

我的代码是:

$jobs = DB::table('joblists')
                ->where(function ($query)   use ($possibleSubMods ){
                    foreach ($possibleSubs2 as $subModality) {
                        return $query->where('subModality', 'like', "%" . $subModality . "%");
                    }
                })->count();

它仅返回subModality列中具有“ Pre-Op”的行,请记住,“ Pre-Op”是$possibleSubMods数组中的第一个值

请为我提供快速而强大的解决方案,我正在使用Laravel 5.8!TIA!

查看更多

提问者
Sameer Qureshi
被浏览
27
Foued MOUSSI 2020-02-19 13:20

您可以使用

$jobs = DB::table('joblists')->where(function ($query) use ($possibleSubMods ){
       foreach ($possibleSubs2 as $key => $subModality) {
            if ($key === 0)
                 $query->where('subModality', 'like', "%" . $subModality . "%");
            else
                 $query->orWhere('subModality', 'like', "%" . $subModality . "%");
       }
})->count();