Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Truy vấn MySQL đếm hàng có chứa 2 hoặc nhiều giá trị chỉ định

Đếm số hàng mà trong đó xuất hiện đồng thời 2 (hoặc nhiều) giá trị cụ thể ở các cột khác nhau.

Ví dụ minh họa

Tạo bảng 3 cột số:

CREATE TABLE specifiedValuesDemo (
    Value INT, Value2 INT, Value3 INT
);

INSERT INTO specifiedValuesDemo VALUES (10, 15, 20);
INSERT INTO specifiedValuesDemo VALUES (40, 10, 20);
INSERT INTO specifiedValuesDemo VALUES (80, 20, 1000);

Dữ liệu:

+-------+--------+--------+
| Value | Value2 | Value3 |
+-------+--------+--------+
| 10    | 15     | 20     |
| 40    | 10     | 20     |
| 80    | 20     | 1000   |
+-------+--------+--------+

Đếm hàng có chứa cả 10 và 20 ở bất kỳ cột nào trong (Value, Value2, Value3):

SELECT COUNT(*) FROM specifiedValuesDemo
WHERE 10 IN (Value, Value2, Value3)
  AND 20 IN (Value, Value2, Value3);

Kết quả: 2 (hàng 1 và hàng 2).

Giải thích:

  • 10 IN (Value, Value2, Value3) kiểm tra 10 có mặt trong 3 cột không.
  • AND yêu cầu cả 2 giá trị đều có mặt.
  • Cách này mở rộng dễ dàng cho nhiều giá trị: WHERE 10 IN (...) AND 20 IN (...) AND 30 IN (...).

Lưu ý: Nếu cùng một hàng có thể chứa trùng giá trị (ví dụ Value=10, Value2=10), logic vẫn đúng vì IN chỉ kiểm tra sự tồn tại.