Atualmente estou usando a última versão do Laravel.
Eu tentei as seguintes perguntas:
Code::where('to_be_used_by_user_id', '<>' , 2)->get()
Code::whereNotIn('to_be_used_by_user_id', [2])->get()
Code::where('to_be_used_by_user_id', 'NOT IN', 2)->get()
Idealmente, ele deve retornar todos os registros user_id = 2
, exceto , mas retorna uma matriz em branco. Como faço para resolver isso?
Code::all()
Isso retorna todos os 4 registros.
Modelo de código:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Code extends Model
{
protected $fillable = ['value', 'registration_id', 'generated_for_user_id', 'to_be_used_by_user_id', 'code_type_id', 'is_used'];
public function code_type()
{
return $this->belongsTo('App\CodeType');
}
}
Para
where field not empty
isso funcionou para mim:fonte
Enquanto isso parece funcionar
você não deve usá-lo para tabelas grandes, porque como regra geral "ou" em sua cláusula where está interrompendo a consulta para usar o índice. Você está indo de "Pesquisa de chave" para "verificação completa da tabela"
Em vez disso, tente o Union
fonte
Ou assim:
fonte