การใช้งาน LIKE Operator ใน SQL ใช้สำหรับการค้นหาข้อมูลในคอลัมน์ที่ตรงกับรูปแบบ (pattern) ที่เรากำหนด โดยจะใช้เครื่องหมายพิเศษ 2 ตัวคือ
%(เปอร์เซ็นต์) ใช้แทนกลุ่มอักขระที่สามารถเป็นอะไรก็ได้ หรือไม่มีเลย_(ขีดล่าง) ใช้แทนหนึ่งอักขระที่สามารถเป็นอะไรก็ได้
สร้างตารางตัวอย่าง
สมมุติว่าเรามีตารางชื่อ Customers ที่เก็บข้อมูลลูกค้า โดยมีโครงสร้างดังนี้
SQL
CREATE TABLE Customers (
CustomerID INT,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Email VARCHAR(100)
);
INSERT INTO Customers (CustomerID, FirstName, LastName, Email) VALUES
(1, 'John', 'Doe', '[email protected]'),
(2, 'Jane', 'Smith', '[email protected]'),
(3, 'Michael', 'Johnson', '[email protected]'),
(4, 'Sara', 'Doe', '[email protected]'),
(5, 'Samuel', 'Lee', '[email protected]'),
(6, 'Sandy', 'Smith', '[email protected]');
การใช้งานโอเปอเรเตอร์ LIKE
การใช้ % เพื่อค้นหาอักขระใด ๆ จำนวนเท่าใดก็ได้
เราสามารถใช้ % เพื่อค้นหาคำที่เริ่มต้นหรือจบลงด้วยอักขระบางตัว หรือค้นหากลางคำก็ได้
ตัวอย่างที่ 1: ค้นหาชื่อลูกค้าที่นามสกุลลงท้ายด้วยคำว่า “Doe”
SQL
SELECT * FROM Customers
WHERE LastName LIKE '%Doe';อธิบาย:
%Doeหมายความว่าต้องการค้นหานามสกุลที่ลงท้ายด้วยคำว่า “Doe” โดยก่อนหน้าสามารถเป็นอักขระใด ๆ จำนวนเท่าใดก็ได้
ผลลัพธ์

ตัวอย่างที่ 2: ค้นหาที่อยู่อีเมลที่มีคำว่า “example” อยู่ในโดเมน
SQL
SELECT * FROM Customers
WHERE Email LIKE '%example%';อธิบาย:
%example%หมายความว่า ต้องการค้นหาอีเมลที่มีคำว่า “example” อยู่ภายในที่อยู่อีเมล โดยทั้งก่อนและหลังสามารถเป็นอักขระใด ๆ ได้
ผลลัพธ์

การใช้ _ เพื่อแทนที่อักขระหนึ่งตัว
_ ใช้แทนอักขระหนึ่งตัวที่สามารถเป็นอะไรก็ได้ ไม่ว่าจะเป็นตัวอักษรหรือตัวเลข
ตัวอย่างที่ 3: ค้นหาชื่อที่มีตัวอักษรตัวที่สองเป็น “a”
SQL
SELECT * FROM Customers
WHERE FirstName LIKE '_a%';อธิบาย:
_a%หมายถึงตัวอักษรแรกเป็นอะไรก็ได้ แต่ตัวที่สองต้องเป็น “a” และหลังจากนั้นสามารถเป็นอักขระใด ๆ ได้
ผลลัพธ์

การผสมการใช้ % และ _ ร่วมกัน
เราสามารถใช้ทั้ง % และ _ ในคำสั่งเดียวกัน เพื่อสร้างรูปแบบที่ซับซ้อนมากขึ้นได้
ตัวอย่างที่ 4: ค้นหานามสกุลที่มี 4 ตัวอักษรและลงท้ายด้วยตัว “e”
SQL
SELECT * FROM Customers
WHERE LastName LIKE '__e';อธิบาย:
___eหมายถึงอักขระสองตัวแรกเป็นอะไรก็ได้ แต่ตัวที่สี่ต้องเป็น “e”
ผลลัพธ์

การใช้ NOT LIKE
นอกจากการใช้ LIKE เพื่อค้นหาข้อมูลที่ตรงกับรูปแบบแล้ว เรายังสามารถใช้ NOT LIKE เพื่อตัดข้อมูลที่ไม่ตรงกับรูปแบบที่กำหนดได้
ตัวอย่างที่ 5: ค้นหาลูกค้าที่นามสกุลไม่ได้ลงท้ายด้วย “Smith”
SQL
SELECT * FROM Customers
WHERE LastName NOT LIKE '%Smith';อธิบาย:
%Smithจะค้นหานามสกุลที่ลงท้ายด้วย “Smith” แต่เมื่อใช้NOT LIKEจะตัดผลลัพธ์นั้นออก
ผลลัพธ์:

