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

อักขระตัวแทน (wildcard) ต่างๆ ที่ใช้กับ MySQL LIKE operator มีอะไรบ้าง

ตัวดำเนินการ LIKE ใช้ร่วมกับอักขระตัวแทน (WILDCARD) เพื่อดึงสตริงที่มีรูปแบบที่ระบุ WILDCARD คืออักขระที่ช่วยค้นหาข้อมูลตรงเกณฑ์ซับซ้อน อักขระตัวแทนที่ใช้ร่วมกับ LIKE มีดังนี้:

% - เปอร์เซ็นต์

อักขระ '%' ใช้ระบุรูปแบบ 0, 1 หรือหลายตัวอักษร ไวยากรณ์พื้นฐาน:

SELECT Statement... WHERE column_name LIKE 'X%'

โดย X คือรูปแบบเริ่มต้นที่ระบุ เช่น ตัวอักษรเดียวหรือมากกว่า และ % ตรงกับจำนวนตัวอักษรใดๆ เริ่มจาก 0

เปอร์เซ็นต์ '%' สามารถใช้ได้หลายรูปแบบกับรูปแบบที่ระบุ ตัวอย่างการใช้ LIKE กับ % ต่างๆ (X แทนรูปแบบที่ระบุ):

1. LIKE 'X%': หาค่าที่เริ่มต้นด้วย "X"

mysql> SELECT * FROM Student WHERE name LIKE 'a%';
+------+-------+---------+---------+
| Id   | Name  | Address | Subject |
+------+-------+---------+---------+
| 2    | Aarav | Mumbai  | History |
+------+-------+---------+---------+
1 row in set (0.00 sec)

2. LIKE '%X': หาค่าที่ลงท้ายด้วย "X"

mysql> SELECT * FROM Student WHERE name LIKE '%v';
+------+--------+---------+-----------+
| Id   | Name   | Address | Subject   |
+------+--------+---------+-----------+
| 1    | Gaurav | Delhi   | Computers |
| 2    | Aarav  | Mumbai  | History   |
| 20   | Gaurav | Jaipur  | Computers |
+------+--------+---------+-----------+
3 rows in set (0.00 sec)

3. LIKE '%X%': หาค่าที่มี "X" ในตำแหน่งใดก็ได้

mysql> SELECT * FROM Student WHERE name LIKE '%h%';
+------+---------+---------+----------+
| Id   | Name    | Address | Subject  |
+------+---------+---------+----------+
| 15   | Harshit | Delhi   | Commerce |
| 21   | Yashraj | NULL    | Math     |
+------+---------+---------+----------+
2 rows in set (0.00 sec)

4. LIKE 'X%X': หาค่าที่เริ่มต้นด้วย "X" และลงท้ายด้วย "X"

mysql> SELECT * FROM Student WHERE name LIKE 'a%v';
+------+-------+---------+---------+
| Id   | Name  | Address | Subject |
+------+-------+---------+---------+
| 2    | Aarav | Mumbai  | History |
+------+-------+---------+---------+
1 row in set (0.00 sec)

_ - อันเดอร์สคอร์

อันเดอร์สคอร์ '_' ใช้จับคู่ตัวอักษรเพียงตัวเดียว ไวยากรณ์พื้นฐาน:

SELECT Statement... WHERE column_name LIKE 'X_'

โดย X คือรูปแบบเริ่มต้น และ _ จับคู่ตัวอักษรเพียงตัวเดียว

อันเดอร์สคอร์ '_' สามารถใช้ได้เดี่ยวหรือร่วมกับ % หลายรูปแบบ ตัวอย่าง LIKE กับ _ ต่างๆ (X แทนรูปแบบที่ระบุ):

1. LIKE 'X_': หาค่าที่เริ่มต้นด้วย "X" และมีตัวอักษรเพียงตัวเดียวหลัง X

mysql> SELECT * FROM student WHERE year_of_Admission LIKE '200_';
+------+---------+---------+-----------+--------------------+
| Id   | Name    | Address | Subject   | year_of_Admission  |
+------+---------+---------+-----------+--------------------+
| 1    | Gaurav  | Delhi   | Computers | 2001               |
| 15   | Harshit | Delhi   | Commerce  | 2009               |
| 21   | Yashraj | NULL    | Math      | 2000               |
+------+---------+---------+-----------+--------------------+
3 rows in set (0.00 sec)

2. LIKE '_X': หาค่าที่ลงท้ายด้วย "X" และมีตัวอักษรเพียงตัวเดียวก่อน X

mysql> SELECT * FROM student WHERE year_of_Admission LIKE '_017';
+------+--------+---------+-----------+--------------------+
| Id   | Name   | Address | Subject   | year_of_Admission  |
+------+--------+---------+-----------+--------------------+
| 20   | Gaurav | Jaipur  | Computers | 2017               |
+------+--------+---------+-----------+--------------------+
1 row in set (0.00 sec)

3. LIKE '_X%': ร่วมกับ % จับคู่ค่าที่มี X ในตำแหน่งที่สอง

mysql> SELECT * FROM student WHERE Name LIKE '_a%';
+------+---------+---------+-----------+--------------------+
| Id   | Name    | Address | Subject   | year_of_Admission  |
+------+---------+---------+-----------+--------------------+
| 1    | Gaurav  | Delhi   | Computers | 2001               |
| 2    | Aarav   | Mumbai  | History   | 2010               |
| 15   | Harshit | Delhi   | Commerce  | 2009               |
| 20   | Gaurav  | Jaipur  | Computers | 2017               |
| 21   | Yashraj | NULL    | Math      | 2000               |
+------+---------+---------+-----------+--------------------+
5 rows in set (0.00 sec)

4. LIKE 'X_%_%': ร่วมกับ % จับคู่ค่าที่เริ่มต้นด้วย X และความยาวอย่างน้อย 3 ตัวอักษร

mysql> SELECT * FROM student WHERE Name LIKE 'g_%_%';
+------+--------+---------+-----------+--------------------+
| Id   | Name   | Address | Subject   | year_of_Admission  |
+------+--------+---------+-----------+--------------------+
| 1    | Gaurav | Delhi   | Computers | 2001               |
| 20   | Gaurav | Jaipur  | Computers | 2017               |
+------+--------+---------+-----------+--------------------+
2 rows in set (0.00 sec)