1
resposta

Problema ao passar vários códigos para query usando IN no WHERE

Tenho uma query que verifica um ID usando o IN. Quando passo esse ID com vários números conforme abaixo, dá erro. Se eu passar $id = '1'; funciona.

public function pesquisa(){
        $id = '1, 2, 3';
        $resposta = DB::select( ' select * from produtos where id in ( ?) ' ,  [$id] );
        return view('produto.detalhes')->with('p', $resposta[0]);
    }

Parece que o laravel entende como Integer. E dá erro :

SQLSTATE[22P02]: Invalid text representation: 7 ERRO: sintaxe de entrada é inválida para integer: "1465,1464,366,1333"

Alguém sabe como resolver ?

1 resposta

Oi Pablo, o Laravel tem um whereIn que deve ser exatamente o que você tá procurando. Ele fica mais ou menos assim:

$ids = [1, 2, 3];
$respostas = DB::table('produtos')->whereIn('id', $ids)>get();

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software