Wildcard Characters ใน SQL ใช้ในการค้นหาข้อมูลที่ไม่จำเป็นต้องตรงกับคำที่กำหนดทั้งหมด ใช้ในคำสั่ง LIKE เพื่อค้นหาข้อมูลที่สอดคล้องกับเงื่อนไขแบบยืดหยุ่น เราสามารถใช้ wildcards หลายรูปแบบตามสถานการณ์
รูปแบบของ Wildcard Characters ใน SQL
%(Percentage): ใช้แทนข้อความที่ไม่จำกัดความยาว จะมีตัวอักษรหรือจำนวนอักขระกี่ตัวก็ได้- ตัวอย่าง:
'A%'จะค้นหาคำที่ขึ้นต้นด้วย A และตามด้วยอักขระใด ๆ จำนวนใดก็ได้
- ตัวอย่าง:
_(Underscore): ใช้แทนอักขระเพียง 1 ตัว ณ ตำแหน่งใด ๆ- ตัวอย่าง:
'A_'จะค้นหาคำที่ขึ้นต้นด้วย A และตามด้วย 1 ตัวอักษร ซึ่งจะเป็นตัวอักษรใดก็ได้
- ตัวอย่าง:
[](Square Brackets): ใช้ค้นหาอักขระในกลุ่มที่กำหนด- ตัวอย่าง:
'H[oa]t'จะค้นหาคำว่าHotหรือHat
- ตัวอย่าง:
[^]หรือ[!]: ใช้ค้นหาคำที่ไม่ใช่อักขระในกลุ่มที่กำหนด- ตัวอย่าง:
'H[^oa]t'จะค้นหาคำที่ขึ้นต้นด้วย H และลงท้ายด้วย t แต่มีอักขระตรงกลางที่ไม่ใช่oหรือa
- ตัวอย่าง:
สร้างตารางฐานข้อมูลตัวอย่าง
SQL
CREATE TABLE Employees (
ID INT,
FirstName VARCHAR(50),
LastName VARCHAR(50),
JobTitle VARCHAR(50)
);
INSERT INTO Employees (ID, FirstName, LastName, JobTitle) VALUES
(1, 'John', 'Doe', 'Manager'),
(2, 'Jane', 'Smith', 'Developer'),
(3, 'Jack', 'Black', 'Analyst'),
(4, 'Jill', 'Doe', 'Developer'),
(5, 'James', 'Brown', 'Manager'),
(6, 'Jessica', 'Jones', 'Developer');
ตัวอย่างการใช้งาน Wildcards
การใช้ % (Percentage)
ค้นหาพนักงานที่ตำแหน่งเป็น Developer
SQL
SELECT * FROM Employees
WHERE JobTitle LIKE '%Developer%';%Developer%ค้นหาข้อมูลที่มีคำว่าDeveloperตรงส่วนใดของข้อความก็ได้
ผลลัพธ์

การใช้ _ (Underscore)
ค้นหาพนักงานที่นามสกุลมี 3 ตัวอักษร และขึ้นต้นด้วย D
SQL
SELECT * FROM Employees
WHERE LastName LIKE 'D__';D__หมายถึงคำที่ขึ้นต้นด้วยDและตามด้วย 2 ตัวอักษร
ผลลัพธ์

การใช้ [] (Square Brackets)
ค้นหาพนักงานที่ชื่อนำหน้าด้วย J และตัวถัดไปเป็น a หรือ o
SQL
SELECT * FROM Employees
WHERE FirstName LIKE 'J[a,o]%';J[a,o]%ค้นหาชื่อที่ขึ้นต้นด้วยJและมีตัวอักษรถัดไปเป็นaหรือo
ผลลัพธ์

หมายเหตุ: คำสั่งนี้ถ้ารันใน MySQL จะไม่ได้ผลลัพธ์
การใช้ [^] (Not in Square Brackets)
ค้นหาพนักงานที่นามสกุลขึ้นต้นด้วย J แต่ตัวถัดไปไม่ใช่ o
SQL
SELECT * FROM Employees
WHERE LastName LIKE 'J[^o]%';J[^o]%ค้นหาคำที่ขึ้นต้นด้วยJและมีตัวถัดไปที่ไม่ใช่oแต่ในกรณีนี้ไม่มีผลลัพธ์ที่ตรงกับเงื่อนไข
ผลลัพธ์
ไม่มีผลลัพธ์
สรุป
การใช้ Wildcard Characters ใน SQL เป็นเทคนิคที่ช่วยให้เราค้นหาข้อมูลได้ยืดหยุ่นมากขึ้น โดยสามารถใช้สัญลักษณ์ต่าง ๆ เช่น %, _, [], และ [^] เพื่อกำหนดรูปแบบการค้นหาที่ซับซ้อนขึ้น
