laravel querybuilder cómo usar la función like in where

1 minuto de lectura

avatar de usuario
Al Alamin

$libro = array(‘libro1′,’libro2’); Los números de los elementos de la matriz $book son variables. puede tener 2 elementos o 20 elementos
Necesito hacer una consulta como esta:

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

Para hacer esta consulta en laravel 5 hay una opción:

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

pero usa = operador que necesito usar like operador

avatar de usuario
Al Alamin

Gracias a todos por ayudarme, pero lo resolví haciendo:

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

  • Esto es equivalente a la respuesta de @goldlife, excepto que la tuya es más elegante.

    – Bhargav Nanekalva

    1 de septiembre de 2017 a las 13:08

  • Esta solución solo funcionará cuando la matriz $book contenga solo 2 miembros. No trabajaré cuando la matriz $ book tenga más de 2 miembros, ya que “podría tener 2 elementos o 20 elementos” se menciona en la pregunta.

    – Prem popatia

    25 de mayo de 2019 a las 9:19


¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad