ฟังก์ชัน MySQL LOCATE() ทำให้สามารถค้นหาตำแหน่งของสตริงย่อยที่เกิดขึ้นครั้งแรกในสตริงได้ ต่อไปนี้เป็นรูปแบบการใช้งาน -
ไวยากรณ์
LOCATE(Substring, String)
ในฟังก์ชันนี้ สตริงย่อยคือสตริงที่ต้องการค้นหาตำแหน่งการเกิดขึ้น และสตริงเป็นสตริงที่ต้องการค้นหาการเกิดขึ้นของสตริงย่อย
เราต้องส่งผ่านทั้งสตริง (เช่น สตริงย่อยที่จะค้นหาและสตริงที่ต้องการค้นหาสตริงย่อย) เป็นอาร์กิวเมนต์ของฟังก์ชัน LOCATE()
ตัวอย่าง
mysql> Select LOCATE('Good','RAM IS A GOOD BOY')As Result; +--------+ | Result | +--------+ | 10 | +--------+ 1 row in set (0.00 sec)
ในตัวอย่างข้างต้น ผลลัพธ์คือ 10 เนื่องจากการเกิดขึ้นครั้งแรกของสตริงย่อย 'ดี' เริ่มจากตำแหน่งที่ 10 ในสตริง 'RAM IS A GOOD BOY'
อย่างไรก็ตาม เรายังสามารถจัดการจุดเริ่มต้นของการค้นหาโดยใช้อาร์กิวเมนต์อื่นที่แสดงถึงตำแหน่ง ไวยากรณ์ของ LOCATE() พร้อมอาร์กิวเมนต์ตำแหน่งจะเป็นดังนี้ -
LOCATE(Substring, String, position)
ตัวอย่าง
mysql> Select LOCATE('Good','Good, RAM IS A GOOD BOY')As Result; +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec) mysql> Select LOCATE('Good','Good, RAM IS A GOOD BOY',5)As Result; +--------+ | Result | +--------+ | 16 | +--------+ 1 row in set (0.00 sec)
จากชุดผลลัพธ์ข้างต้น เราจะเห็นความแตกต่างระหว่างการใช้อาร์กิวเมนต์ตำแหน่ง หากเราไม่ใช้มัน การค้นหาโดยค่าเริ่มต้นจะเริ่มต้นจากตำแหน่งที่ 1 และเมื่อเราระบุ '5' เป็นอาร์กิวเมนต์ตำแหน่งในตัวอย่างของเรา การค้นหาจะเริ่มต้นจากตำแหน่งที่ 5