SQL การใช้งาน Wildcard Characters

Wildcard Characters ใน SQL ใช้ในการค้นหาข้อมูลที่ไม่จำเป็นต้องตรงกับคำที่กำหนดทั้งหมด ใช้ในคำสั่ง LIKE เพื่อค้นหาข้อมูลที่สอดคล้องกับเงื่อนไขแบบยืดหยุ่น เราสามารถใช้ wildcards หลายรูปแบบตามสถานการณ์

รูปแบบของ Wildcard Characters ใน SQL

  1. % (Percentage): ใช้แทนข้อความที่ไม่จำกัดความยาว จะมีตัวอักษรหรือจำนวนอักขระกี่ตัวก็ได้
    • ตัวอย่าง: 'A%' จะค้นหาคำที่ขึ้นต้นด้วย A และตามด้วยอักขระใด ๆ จำนวนใดก็ได้
  2. _ (Underscore): ใช้แทนอักขระเพียง 1 ตัว ณ ตำแหน่งใด ๆ
    • ตัวอย่าง: 'A_' จะค้นหาคำที่ขึ้นต้นด้วย A และตามด้วย 1 ตัวอักษร ซึ่งจะเป็นตัวอักษรใดก็ได้
  3. [] (Square Brackets): ใช้ค้นหาอักขระในกลุ่มที่กำหนด
    • ตัวอย่าง: 'H[oa]t' จะค้นหาคำว่า Hot หรือ Hat
  4. [^] หรือ [!]: ใช้ค้นหาคำที่ไม่ใช่อักขระในกลุ่มที่กำหนด
    • ตัวอย่าง: '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 เป็นเทคนิคที่ช่วยให้เราค้นหาข้อมูลได้ยืดหยุ่นมากขึ้น โดยสามารถใช้สัญลักษณ์ต่าง ๆ เช่น %, _, [], และ [^] เพื่อกำหนดรูปแบบการค้นหาที่ซับซ้อนขึ้น

แชร์เรื่องนี้