sql >> Database teknologi >  >> RDS >> Mysql

Forskellige resultater med samme forespørgsel med DB::raw og Eloquent

where binder 3. param og behandler det normalt som en streng, medmindre du fortæller det ikke ved at bruge rå statement. DB::raw eller whereRaw vil fungere for dig:

return User::join('squad_user', 'users.id', '=', 'squad_user.user_id')
       ->join('seasons', 'squad_user.squad_id', '=', 'seasons.squad_id')
       ->where('squad_user.join_time', '<=', DB::raw('seasons.end_time'))
       ->where(function ($query)
       {
           $query->where('squad_user.leave_time', '>=', DB::raw('seasons.start_time'))
                 ->orWhereNull('squad_user.leave_time');
       })
       ->where('seasons.id', 3)
       ->get(['users.*']);


  1. Er SELECT eller INSERT i en funktion tilbøjelig til raceforhold?

  2. Konverter en kompleks SQL-forespørgsel til SQLAlchemy

  3. Brug af Sysbench til at generere testdata til Sharded Table i MySQL

  4. 2 funktioner til at få året fra en date i Oracle