Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Số lượng riêng biệt của Laravel 5.3, sử dụng tài liệu hùng hồn thay vì Trình tạo truy vấn

Truy vấn bạn thực hiện không đúng với trường hợp sử dụng, bạn có thể thấy sự khác biệt.

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;

sẽ trả về hai hàng

aggregate
1,
2

Lượt chọn đầu tiên và lượt trả lại là 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;

sẽ trả về các hàng dưới dạng

agrregate
2,
1

Eloquent sẽ dẫn đến kết quả là 2 trong trường hợp này.

Những gì bạn muốn là số lượng (truy vấn) sẽ lại là 2.

Nhận được nó? những gì bạn muốn là DISTINCT

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SỬ DỤNG nếu câu lệnh không hoạt động như bình thường

  2. Một bảng Mysql với nhiều cột TIMESTAMP

  3. Các giá trị được phân tách bằng dấu phẩy trong mệnh đề MySQL IN

  4. PHP PDO trả về kết quả không nhất quán cho SELECT FOUND_ROWS ()

  5. Kiểm tra ngôn ngữ của chuỗi dựa trên glyphs trong PHP