sql >> Databáze >  >> RDS >> Mysql

Odlišný počet Laravel 5.3 s použitím výmluvného namísto Query Builderu

Dotaz, který zadáte, není správný pro případ použití, můžete vidět rozdíl.

select count(*) as aggregate from game_results 
where (school_id is null and season_id = '1') 
group by user_id order by user_id asc;

vrátí dva řádky

aggregate
1,
2

Výmluvný první vybere a vrátí, což je 1.

select count(*) as aggregate from game_results 
where (school_id is null and season_id = '1') 
group by user_id order by user_id desc;

vrátí řádky jako

agrregate
2,
1

Výmluvný bude v tomto případě 2.

Co chcete, je počet (dotaz), který bude opět 2.

Získávám to? co chcete, je ODLIŠITELNÉ

$usersWithAnswersCount = GameResult::where([
    'school_id' => null,
    'season_id' => $this->season->id 
])
->distinct('user_id')
->count();


  1. Zjistěte, zda řetězec obsahuje pouze znaky ASCII

  2. alternativa k mysql_field_name v mysqli

  3. Import JSON do Mysql

  4. Instalace ovladače QMYSQL