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

ใช้ LIKE % ร่วมกับ OR เพื่อดึงหลายค่าในคำสั่ง MySQL เดียว

การค้นหาค่าหลายรูปแบบด้วย LIKE และ OR

เมื่อต้องการค้นหาแถวที่คอลัมน์ตรงกับรูปแบบ (Pattern) หลายรูปแบบ เราสามารถใช้ LIKE ร่วมกับ OR ได้

สร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable1027 (Id INT, Name VARCHAR(100));
Query OK, 0 rows affected (1.64 sec)

mysql> INSERT INTO DemoTable1027 VALUES(100,'John');
mysql> INSERT INTO DemoTable1027 VALUES(20,'Chris');
mysql> INSERT INTO DemoTable1027 VALUES(200,'Robert');
mysql> INSERT INTO DemoTable1027 VALUES(400,'Mike');

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable1027;

ผลลัพธ์:

+------+--------+
| Id   | Name   |
+------+--------+
| 100  | John   |
| 20   | Chris  |
| 200  | Robert |
| 400  | Mike   |
+------+--------+
4 rows in set (0.00 sec)

คำสั่งค้นหา Id ที่มี '100' หรือ '200' อยู่ในตัวเลข

mysql> SELECT * FROM DemoTable1027 WHERE Id LIKE '%100%' OR Id LIKE '%200%';

ผลลัพธ์:

+------+--------+
| Id   | Name   |
+------+--------+
| 100  | John   |
| 200  | Robert |
+------+--------+
2 rows in set (0.74 sec)

คำอธิบาย

  • Id LIKE '%100%' : Id ที่มี '100' อยู่ตรงไหนก็ได้ (นำหน้า, กลาง, ท้าย)
  • OR : รวมเงื่อนไข ทั้งสองต้องเป็นจริงเพียงอย่างใดอย่างหนึ่ง
  • Id เป็น INT แต่ MySQL แปลงเป็นสตริงอัตโนมัติสำหรับ LIKE
  • ควรระวัง: LIKE '%...%' ไม่ใช้ Index ได้ (Full Table Scan) เหมาะตารางเล็กหรือไม่บ่อย
  • สำหรับค่าที่แน่นอน ควรใช้ IN (100, 200) แทน จะเร็วกว่ามาก