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

Đếm nhiều lần xuất hiện của các văn bản riêng biệt trong MySQL?


Bạn có thể sử dụng hàm tổng hợp COUNT kết hợp với IF() để thực hiện việc này. Để hiểu khái niệm, hãy tạo một bảng.

Câu truy vấn tạo bảng như sau:

mysql> create table CountOccurrencesDemo 
    -> ( 
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    -> TechnicalSubject varchar(100) 
    -> ); 
Query OK, 0 rows affected (0.68 sec)

Bây giờ bạn có thể chèn một số bản ghi vào bảng bằng lệnh insert:

mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('Java'); 
Query OK, 1 row affected (0.14 sec) 
mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('MongoDB'); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('MySQL'); 
Query OK, 1 row affected (0.16 sec) 
mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('MySQL'); 
Query OK, 1 row affected (0.10 sec) 
mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('MySQL'); 
Query OK, 1 row affected (0.07 sec) 
mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('Java'); 
Query OK, 1 row affected (0.15 sec) 
mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('Java'); 
Query OK, 1 row affected (0.10 sec) 
mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('Java'); 
Query OK, 1 row affected (0.09 sec) 
mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('Java'); 
Query OK, 1 row affected (0.11 sec) 
mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('MongoDB'); 
Query OK, 1 row affected (0.21 sec)

Hiển thị tất cả bản ghi từ bảng bằng câu lệnh select:

mysql> select * from CountOccurrencesDemo;

Kết quả đầu ra:

+----+------------------+ 
| Id | TechnicalSubject | 
+----+------------------+ 
| 1  | Java             | 
| 2  | MongoDB          | 
| 3  | MySQL            | 
| 4  | MySQL            | 
| 5  | MySQL            | 
| 6  | Java             | 
| 7  | Java             | 
| 8  | Java             | 
| 9  | Java             | 
| 10 | MongoDB          | 
+----+------------------+ 
10 rows in set (0.00 sec)

Câu truy vấn sau đếm nhiều lần xuất hiện của văn bản trong MySQL:

mysql> select count(if(tbl.TechnicalSubject LIKE '%Java%',1,null)) as JavaOccurrence, 
    -> count(if(tbl.TechnicalSubject LIKE '%MySQL%',1,null)) as MySQLOccurrence, 
    -> count(if(tbl.TechnicalSubject LIKE '%MongoDB%',1,null)) as MongoDBOccurrence 
    -> from CountOccurrencesDemo tbl;

Kết quả đầu ra:

+----------------+-----------------+-------------------+ 
| JavaOccurrence | MySQLOccurrence | MongoDBOccurrence | 
+----------------+-----------------+-------------------+ 
| 5              | 3               | 2                 | 
+----------------+-----------------+-------------------+ 
1 row in set (0.05 sec)