นับจำนวนเรคคอร์ดที่มีคำเฉพาะในสตริงด้วย LIKE และ COUNT/IF
สร้างตารางและเพิ่มข้อมูล
mysql> create table DemoTable ( Subject varchar(80) ); Query OK, 0 rows affected (0.58 sec)
mysql> insert into DemoTable values('MySQLMongoDB');
Query OK, 1 row affected (0.86 sec)
mysql> insert into DemoTable values('MySQL');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('JavaMySQL');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('MongoDB');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('Java');
Query OK, 1 row affected (0.19 sec)
คิวรี่นับจำนวนที่มีคำ MySQL, Java, MongoDB
mysql> select
-> count(if(Subject like '%MySQL%',1,NULL)) as MySQLCount,
-> count(if(Subject like '%Java%',1,NULL)) as JavaCount,
-> count(if(Subject like '%MongoDB%',1,NULL)) as MongoDBCount
-> from DemoTable;
ผลลัพธ์
+------------+-----------+--------------+ | MySQLCount | JavaCount | MongoDBCount | +------------+-----------+--------------+ | 3 | 2 | 2 | +------------+-----------+--------------+ 1 row in set (0.00 sec)
คำอธิบาย: IF(condition, 1, NULL) คืน 1 เมื่อเจอคำค้นหา NULL เมื่อไม่เจอ | COUNT() นับเฉพาะค่าที่ไม่ใช่ NULL | ใช้ได้เมื่อไม่สามารถใช้ IN() โดยตรงกับสตริงที่มีหลายคำ