Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

คิวรี่ MySQL เดียวสำหรับค้นหาคำหลายคำจากคอลัมน์ต่างๆ

สำหรับการค้นหาคำหลายคำในคอลัมน์เดียวกัน สามารถใช้เงื่อนไข WHERE ร่วมกับออปเปอเรเตอร์ LIKE หลายตัวได้ เริ่มต้นด้วยการสร้างตารางตัวอย่าง:

mysql> CREATE TABLE DemoTable1536 (
    -> Sentence TEXT
    -> );
Query OK, 0 rows affected (0.51 sec)

เพิ่มข้อมูลตัวอย่างลงในตาราง:

mysql> INSERT INTO DemoTable1536 VALUES('I like MySQL database.');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable1536 VALUES('Java is an Object Oriented Programming Language');
Query OK, 1 row affected (0.30 sec)
mysql> INSERT INTO DemoTable1536 VALUES('I only like data structure');
Query OK, 1 row affected (0.21 sec)
mysql> INSERT INTO DemoTable1536 VALUES('MongoDB is NoSQL database');
Query OK, 1 row affected (0.46 sec)

แสดงข้อมูลทั้งหมดในตาราง:

mysql> SELECT * FROM DemoTable1536;

ผลลัพธ์ที่ได้:

+--------------------------------------------------+
| Sentence                                         |
+--------------------------------------------------+
| I like MySQL database.                           |
| Java is an Object Oriented Programming Language  |
| I only like data structure                       |
| MongoDB is NoSQL database                        |
+--------------------------------------------------+
4 rows in set (0.00 sec)

คิวรี่สำหรับค้นหาข้อมูลที่มีคำว่า "like", "database", หรือ "data":

mysql> SELECT * FROM DemoTable1536
    -> WHERE (Sentence LIKE '%like%')
    ->    OR (Sentence LIKE '%database%')
    ->    OR (Sentence LIKE '%data%');

ผลลัพธ์จะแสดงเฉพาะแถวที่ตรงกับเงื่อนไขอย่างน้อยหนึ่งข้อ:

+----------------------------+
| Sentence                   |
+----------------------------+
| I like MySQL database.     |
| I only like data structure |
| MongoDB is NoSQL database  |
+----------------------------+
3 rows in set (0.00 sec)

หมายเหตุ: การใช้ OR ระหว่างเงื่อนไข LIKE ทำให้ค้นหาได้หลายคำพร้อมกัน หากต้องการค้นหาจากหลายคอลัมน์ ให้เพิ่มชื่อคอลัมน์ในแต่ละเงื่อนไข เช่น column1 LIKE '%word%' OR column2 LIKE '%word%'