Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ใน MySQL หาตำแหน่งการปรากฏครั้งแรกของสตริงย่อยในสตริงอย่างไร

ฟังก์ชัน MySQL LOCATE() ทำให้เป็นไปได้ที่จะหาตำแหน่งการปรากฏครั้งแรกของสตริงย่อยในสตริง ไวยากรณ์การใช้งาน:

ไวยากรณ์

LOCATE(Substring, String)

ในฟังก์ชันนี้ Substring คือสตริงที่ต้องการหาตำแหน่งการปรากฏ และ String คือสตริงที่จะค้นหาสตริงย่อย ต้องส่งทั้งสองสตริงเป็นอาร์กิวเมนต์ของ LOCATE()

ตัวอย่าง

mysql> SELECT LOCATE('Good', 'RAM IS A GOOD BOY') AS Result;
+--------+
| Result |
+--------+
| 10     |
+--------+
1 row in set (0.00 sec)

ในตัวอย่าง ผลลัพธ์คือ 10 เพราะการปรากฏครั้งแรกของ substring 'good' เริ่มจากตำแหน่งที่ 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