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

Đếm giá trị phân tách bằng dấu phẩy trong hàng MySQL

Đếm số lần xuất hiện giá trị trong chuỗi phân tách bằng dấu phẩy

MySQL cung cấp hàm FIND_IN_SET() để tìm kiếm giá trị trong chuỗi phân tách bằng dấu phẩy, kết hợp với COUNT(*) để đếm số hàng chứa giá trị đó.

1. Tạo bảng và chèn dữ liệu

mysql> CREATE TABLE DemoTable (
    Value VARCHAR(100)
);

Chèn các chuỗi giá trị:

mysql> INSERT INTO DemoTable VALUES ('10,20,60,80');
mysql> INSERT INTO DemoTable VALUES ('60,70,90');
mysql> INSERT INTO DemoTable VALUES ('50,55,65,60');
mysql> INSERT INTO DemoTable VALUES ('90,98,97');

2. Xem dữ liệu

mysql> SELECT * FROM DemoTable;

Kết quả:

+-------------+
| Value       |
+-------------+
| 10,20,60,80 |
| 60,70,90    |
| 50,55,65,60 |
| 90,98,97    |
+-------------+

3. Truy vấn đếm số hàng chứa giá trị '60'

mysql> SELECT COUNT(*) FROM DemoTable
    WHERE FIND_IN_SET('60', Value) > 0;

4. Kết quả

+----------+
| COUNT(*) |
+----------+
| 3        |
+----------+

Giải thích: Hàm FIND_IN_SET('60', Value) trả về vị trí của '60' trong chuỗi Value (bắt đầu từ 1), trả về 0 nếu không tìm thấy. Có 3 hàng chứa giá trị 60: hàng 1, 2 và 3.

Lưu ý: FIND_IN_SET chỉ hoạt động chính xác khi chuỗi không có khoảng trắng sau dấu phẩy. Nếu dữ liệu có dạng '10, 20, 60' (có khoảng trắng), cần dùng REPLACE(Value, ' ', '') trước khi tìm kiếm.