คำสั่ง LIKE หรือ LIKE Operator เป็นคำสั่งที่จะถูกนำไปใช้ต่อจากคำสั่ง WHERE ในภาษา SQL เพื่อค้นหาข้อมูลตามรูปแบบที่เราต้องการ
สำหรับคำสั่ง LIKE จะมี Wildcards ( สัญญลักษณ์ ) อยู่ 2 ตัวที่มักจะใช้งานร่วมกัน คือ
- % Percent เครื่องหมายเปอร์เซ็นต์ แทนค่าเท่ากับอักษรหนึ่งตัว หรือมากกว่า
- _ Underscore เครื่องหมายขีดเส้นใต้ แทนค่าเท่ากับอักษรหนึ่งตัวเท่านั้น
ตัวอย่างการใช้งาน LIKE Operator
คำสั่ง | อธิบาย |
---|---|
SELECT name FROM user WHERE name LIKE 'a%' | ค้นหาชื่อที่ขึ้นต้นด้วยอักษร ‘a’ |
SELECT name FROM user WHERE name LIKE '%a' | ค้นหาชื่อที่ลงท้ายด้วยอักษร ‘a’ |
SELECT name FROM user WHERE name LIKE '%a%' | ค้นหาชื่อที่มีอักษร ‘a’ จุดไหนก็ได้ของชื่อ |
SELECT name FROM user WHERE name LIKE '_a%' | ค้นหาชื่อที่อักษรตัวแรก เพียง 1 ตัว ขึ้นต้นด้วยอักษรใดก็ได้ และอักษรทั้งหมด จะลงท้ายด้วยอะไรก็ได้ แต่ตัวอักษรที่ 2 ต้องเป็นอักษร ‘a’ |
SELECT name FROM user WHERE name LIKE 'a_%' | ค้นหาชื่อที่ขึ้นต้นด้วยอักษร ‘a’ แต่ชื่อนั้นต้องมีความยาวเท่ากับหรือมากว่า 2 ตัวอักษร ถ้าชื่อมีแค่อักษร ‘a’ ตัวเดียวจะไม่เข้าเงื่อนไขนี้ |
SELECT name FROM user WHERE name LIKE 'a__%' | ค้นหาชื่อที่ขึ้นต้นด้วยอักษร ‘a’ แต่ชื่อนั้นต้องมีความยาวเท่ากับหรือมากว่า 3 ตัวอักษร ถ้าชื่อมีแค่อักษร ‘a’ ตัวเดียว หรือ สองตัว จะไม่เข้าเงื่อนไขนี้ |
SELECT name FROM user WHERE name LIKE 'a%m' | ค้นหาชื่อที่ขึ้นต้นด้วยอักษร ‘a’ และต้องลงท้ายด้วยอักษร ‘m’ |
ตอนใช้งานจริง ส่วนใหญ่เราจะใช้ร่วมกับตัวแปรที่ถูกส่งเข้ามา เพื่อค้นหาข้อมูลในตาราง อาจจะแค่ 1 ตัวแปร หรือมากกว่า ตัวอย่างคำสั่งเมื่อใช้งานจริงร่วมกับตัวแปร
ค้นหาคอลัมน์ name ในตาราง user ที่มีข้อมูลขึ้นต้นด้วยอักษร ‘a’
$keyword = 'a';
$query = 'SELECT name FROM user WHERE name LIKE '"'.$keyword.'%"';
ค้นหาคอลัมน์ name ในตาราง user ที่มีข้อมูลขึ้นต้นด้วยอักษร ‘a’ และต้องลงท้ายด้วยอักษร ‘m’
$start_char = 'a';
$end_char = 'm';
$query = 'SELECT name FROM user WHERE name LIKE '"'.$start_char.'%'.$end_char.'"';