2016-09-20 2 views
2

у меня есть (или я пытаюсь сделать) этот запрос в LaravelLaravel eloquent несколько ГДЕ с ИЛИ И ИЛИ И НРАВИТСЯ?

Проблема у меня есть с $orThose
Я хочу запросить LIKE.

Данные в этом поле могут быть разными, но всегда будет ключевая работа, такая как «L3» или «ICU» в поле.

Можете ли вы сделать LIKE запрос в данном случае

$matchThese = ['link.hos_id' => $hos_id, 'outcome.otc_otrdischargedate' => $td]; 
$orThose = ['outcome.otc_outcome' => '@[email protected]', 'outcome.otc_outcome' => '@[email protected]']; 

$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) 
->orWhere($orThose) 
->get(); 

ответ

3

Использование like и not like с % в where() и orWhere() методы:

->where('column', 'like', '%pattern%') 

https://laravel.com/docs/5.3/queries#where-clauses

Если вам нужно использовать несколько AND do как это:

->where($condition) 
->where($anotherCondition) 

Если вы хотите использовать OR сделать это:

->where($condition) 
->orWhere($anotherCondition) 

объединить несколько AND и OR сделать parameter grouping:

->where('name', '=', 'John') 
->orWhere(function ($query) { 
    $query->where('votes', '>', 100) 
      ->where('title', '<>', 'Admin'); 
}) 
+0

Вы можете выполнить 'не like', как-хорошо? Другими словами. 'не содержащие эту фразу'. Я полагаю, что что-то вроде '-> где ('title', '<>', '% Admin%')' может работать – morne

+0

Конечно, я добавил его к ответу. Для этого вам следует использовать оператор 'not like'. Например, '-> где ('title', 'not like', '% Admin%')' –

0
public function searchData(Request $request) 
{ 
    return Phonebook::where('name', 'like', '%'.$request->SearchQuery.'%')->orWhere('email', 'like', '%'.$request->SearchQuery.'%')->orWhere('phone', 'like', '%'.$request->SearchQuery.'%')->get(); 
} 

Здесь я поискал имя, адрес электронной почты и номер телефона из телефонной книги Mo дель использованием где, orwhere и как

Смежные вопросы