laravel querybuilder wie man like in where Funktion verwendet

Lesezeit: 2 Minuten

laravel querybuilder wie man like in where Funktion verwendet
Al-Alamin

$book = array(‘book1′,’book2’); Die Nummern der $book-Array-Elemente sind variabel. es kann 2 Elemente oder 20 Elemente haben
Ich muss eine Abfrage wie folgt machen:

select * from book where bookname like %book1% or bookname like %book2%

Um diese Abfrage in Laravel 5 durchzuführen, gibt es eine Option:

$name = DB::Table('bookinfo')
          ->select('*')
          ->wherein('bookname',$book)
          ->get();

aber es verwenden = Operator, den ich verwenden muss like Operator

laravel querybuilder wie man like in where Funktion verwendet
Al-Alamin

Vielen Dank an alle, die mir geholfen haben, aber ich habe es gelöst, indem ich Folgendes getan habe:

$book = array('book2','book3','book5');  

$name = DB::Table('bookinfo')
        ->select('BookName', 'bookId')                
        ->Where(function ($query) use($book) {
             for ($i = 0; $i < count($book); $i++){
                $query->orwhere('bookname', 'like',  '%' . $book[$i] .'%');
             }      
        })->get();

  • Dies entspricht der Antwort von @goldlife, außer dass Ihre eleganter ist.

    – Bhargav Nanekalva

    1. September 2017 um 13:08 Uhr

laravel querybuilder wie man like in where Funktion verwendet
Goldleben

Verwenden Sie für eine dynamische Abfrage mit 1 oder n Elementen Ihre Anweisung als Sammlung: Für das “Gefällt mir” können Sie eine Raw-Anweisung verwenden:

$collection = DB::Table('bookinfo')->select('*');
foreach($book as $key => $element) {
    if($key == 0) {
        $collection->where(DB::raw('bookname like %'.$element.'%'));
    }
    $collection->orWhere(DB::raw('bookname like %'.$element.'%'));
}
$name = $collection->get();

http://laravel.com/docs/5.1/queries

Rohe Ausdrücke

oder Sie können es auf diese Weise verwenden:

$collection = DB::Table('bookinfo')->select('*');
foreach($book as $key => $element) {
    if($key == 0) {
        $collection->where('bookname', 'like', '%'.$element.'%');
    }
    $collection->orWhere('bookname', 'like', '%'.$element.'%');
 }
 $name = $collection->get();

  • Die Nummern der $book-Array-Elemente sind variabel. es kann 2 Elemente oder 20 Elemente haben

    – Al-Alamin

    17. Dezember 2015 um 8:50 Uhr

$name = DB::Table('bookinfo')
          ->select('*')
          ->where('bookname','LIKE','%'.$book[0].'%')
          ->orWhere('bookname','LIKE','%'.$book[1].'%')
          ->get();

  • Diese Lösung funktioniert nur, wenn das $book-Array nur 2 Mitglieder enthält. Ich werde nicht arbeiten, wenn das $book-Array mehr als 2 Mitglieder hat, da “es könnte 2 Elemente oder 20 Elemente haben” erwähnt wird.

    – Prem Popatia

    25. Mai 2019 um 9:19 Uhr


997850cookie-checklaravel querybuilder wie man like in where Funktion verwendet

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy