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

Tại sao tôi cần HOẶC NULL trong MySQL khi đếm hàng với một điều kiện

Điều này sẽ tiết lộ tất cả

SELECT 4=4, 3=4, 1 or null, 0 or null

Đầu ra

1   |   0   |   1   |   NULL

Sự thật

  1. COUNT thêm các cột / biểu thức đánh giá là NOT NULL. Mọi thứ sẽ tăng lên 1, miễn là nó không rỗng. Ngoại lệ là COUNT (DISTINCT) chỉ tăng lên nếu nó chưa được tính.

  2. Khi một biểu thức BOOLEAN được sử dụng riêng, nó sẽ trả về 1 hoặc 0.

  3. Khi boolean là OR -ed với NULL, nó chỉ là NULL khi nó bằng 0 (false)

Với những người khác

Có nếu số đếm là cột DUY NHẤT mong muốn, người ta có thể sử dụng WHERE value=4 nhưng nếu đó là một truy vấn muốn đếm số 4 cũng như truy xuất số lượng / tổng hợp khác, sau đó bộ lọc không hoạt động. Một giải pháp thay thế sẽ là SUM(value=4) , ví dụ:

SELECT sum(value=4)
  FROM test


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dấu thời gian (tự động) được cập nhật khi nào?

  2. PHP Foreach trên MySQLi Result set

  3. Thêm 6 giờ vào hàm now ()

  4. Truy vấn SQL để xóa cơ sở dữ liệu trong MySQL

  5. Cách thay thế một phần của chuỗi trong MySQL