sql >> Databasteknik >  >> RDS >> Mysql

Laravel 5.3 distinkt antal, använder vältalig istället för Query Builder

Frågan du gör är inte korrekt för användningsfallet, du kan se skillnaden.

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;

returnerar två rader

aggregate
1,
2

Veltalig väljer först och returnerar vilket är 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;

returnerar rader som

agrregate
2,
1

Eloquent kommer att resultera 2 i detta fall.

Det du vill ha är antalet (fråga) som återigen blir 2.

Får det? det du vill ha är DISTINKT

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


  1. Django-makemigrationer fortsätter att göra samma ändring

  2. Tolka resultat från Explain Analyze i Postgres

  3. Laravel:Hur lagrar jag data i json-format i databasen?

  4. array_append-funktionen fungerar inte