ตัวดำเนินการ 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)