MySQL-ใช้งานคำสั่ง-LIKE-ค้นหาข้อมูลในตาราง

คำสั่ง 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.'"';

By codebee

- Programmer & Writer