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

Đếm các trường không trống mysql

Bạn mã cố gắng đếm số hàng trong đó tất cả các trường không phải là giá trị rỗng. Bạn nên sử dụng is not null thay vì chỉ not null .

Để đếm số lượng trường, hãy sử dụng cái này:

SELECT sum((listing_photo_1 IS NOT NULL) +
           (listing_photo_2 IS NOT NULL) +
           (listing_photo_3 IS NOT NULL) +
           (listing_photo_4 IS NOT NULL) +
           (listing_photo_5 IS NOT NULL) +
           (listing_photo_6 IS NOT NULL) +
           (listing_photo_7 IS NOT NULL) +
           (listing_photo_8 IS NOT NULL)
          ) as total
from listings
WHERE pmpid = '$pmpid';

Để đếm số hàng:

SELECT count(*) as total
from listings
WHERE listing_photo_1 IS NOT NULL AND
      listing_photo_2 IS NOT NULL AND 
      listing_photo_3 IS NOT NULL AND 
      listing_photo_4 IS NOT NULL AND 
      listing_photo_5 IS NOT NULL AND 
      listing_photo_6 IS NOT NULL AND 
      listing_photo_7 IS NOT NULL AND 
      listing_photo_8 IS NOT NULL AND 
      pmpid = '$pmpid'";

CHỈNH SỬA:

Nếu chúng trống, hãy sử dụng logic như sau:

SELECT sum((listing_photo_1 IS NOT NULL and listing_photo_1 <> '') +
           (listing_photo_2 IS NOT NULL and listing_photo_2 <> '') +
           (listing_photo_3 IS NOT NULL and listing_photo_3 <> '') +
           (listing_photo_4 IS NOT NULL and listing_photo_4 <> '') +
           (listing_photo_5 IS NOT NULL and listing_photo_5 <> '') +
           (listing_photo_6 IS NOT NULL and listing_photo_6 <> '') +
           (listing_photo_7 IS NOT NULL and listing_photo_7 <> '') +
           (listing_photo_8 IS NOT NULL and listing_photo_8 <> '')
          ) as total
from listings
WHERE pmpid = '$pmpid';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng thay thế SQL - cho phép giá trị cột NULL

  2. Chiến lược đồng bộ hóa cơ sở dữ liệu từ nhiều vị trí vào một cơ sở dữ liệu trung tâm và ngược lại

  3. Các trường Jooq LocalDateTime sử dụng múi giờ hệ thống thay vì múi giờ phiên

  4. giới hạn truy vấn con mySQL

  5. Làm cách nào để nhóm trường ngày để nhận kết quả hàng quý trong MySQL?