ฟังก์ชัน MySQL INSTR()

Fangkchan Mysql Instr



ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ฟังก์ชัน MySQL INSTR() เพื่อระบุตำแหน่งของการเกิดขึ้นครั้งแรกของสตริงย่อยที่กำหนด

ฟังก์ชัน MySQL INSTR()

การใช้ฟังก์ชัน instr() เราสามารถจัดเตรียมสตริงและสตริงย่อยได้ ฟังก์ชันจะพิจารณาว่ามีสตริงย่อยอยู่ในสตริงต้นทางหรือไม่ ถ้ามีสตริงย่อย ฟังก์ชันจะคืนตำแหน่งของการเกิดขึ้นครั้งแรกของสตริงย่อยในสตริงต้นทาง

ถ้าสตริงย่อยไม่มีอยู่ในสตริงต้นทาง ฟังก์ชันจะส่งกลับ 0







ต่อไปนี้จะสาธิตไวยากรณ์ของฟังก์ชัน instr():



INSTR(src_string, sub_string);

ฟังก์ชันยอมรับสองพารามิเตอร์หลัก:



  1. src_string หมายถึงสตริงต้นฉบับที่คุณต้องการค้นหา
  2. sub_string กำหนดสตริงย่อยที่คุณกำลังค้นหา

โปรดทราบว่าฟังก์ชัน instr() นั้นไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ดังนั้น ฟังก์ชันจะค้นหาเฉพาะรูปแบบการจับคู่โดยไม่คำนึงถึงตัวพิมพ์ใหญ่





หากต้องการค้นหาตามตัวพิมพ์เล็กและใหญ่ คุณสามารถใช้เครื่องมืออื่นๆ เช่น ตัวดำเนินการไบนารี

ตัวอย่างการใช้งานฟังก์ชั่น

ตัวอย่างต่อไปนี้แสดงให้เห็นว่าเราสามารถใช้ฟังก์ชัน instr() เพื่อค้นหาสตริงย่อยที่ต้องการได้อย่างไร



เลือก INSTR('MySQL เป็นเครื่องมือฐานข้อมูลที่ยอดเยี่ยม', 'ฐานข้อมูล') เป็น pos;

ตัวอย่างด้านบนจะส่งคืนตำแหน่งเริ่มต้นของสตริง 'ฐานข้อมูล' จากสตริงต้นทาง ในกรณีนี้ ตำแหน่งของสตริงฐานข้อมูลคือ 21 ตามที่แสดงในเอาต์พุตด้านล่าง:

ตำแหน่ง|

---+

21|

ตัวอย่างที่ 2

เราสามารถใช้ฟังก์ชันตัวล่าง () หรือตัวบนเพื่อแปลงสตริงเป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ สิ่งนี้สามารถช่วยให้เราเอาชนะธรรมชาติที่ไวต่อตัวพิมพ์เล็กและใหญ่ของฟังก์ชันได้

ตัวอย่าง:

เลือก INSTR(ล่าง('MySQL เป็นเครื่องมือฐานข้อมูลที่ยอดเยี่ยม'), ล่าง('ฐานข้อมูล')) เป็น pos;

ผลลัพธ์:

ตำแหน่ง|

---+

21|

ซึ่งจะส่งคืนค่าที่คล้ายกับตัวอย่างแรก เนื่องจากสตริงต้นฉบับและสตริงย่อยจะถูกแปลงเป็นตัวพิมพ์เล็กก่อนดำเนินการค้นหา

ตัวอย่างที่ 3

เรายังสามารถใช้ฟังก์ชัน instr() กับคอลัมน์ของตารางได้ ดังที่แสดงในรูปแบบไวยากรณ์ด้านล่าง

SELECT INSTR(ชื่อคอลัมน์, 'สตริงย่อย')

จาก table_name;

ตัวอย่าง:

สร้างตารางบล็อก (

id INT ไม่เป็น NULL AUTO_INCREMENT คีย์หลัก

ชื่อเรื่อง VARCHAR(255) ไม่เป็นโมฆะ

ข้อความเนื้อหาไม่เป็นโมฆะ

date_posted วันที่ไม่เป็นโมฆะ

ผู้เขียน VARCHAR(255) ไม่เป็นโมฆะ

);

ใส่ข้อมูลบางส่วน:

INSERT INTO บล็อก (ชื่อ, เนื้อหา, date_posted, ผู้แต่ง)

VALUES ('บล็อกโพสต์แรกของฉัน', 'นี่คือเนื้อหาของบล็อกโพสต์แรกของฉัน', '2022-12-09', 'Jane Doe');

INSERT INTO บล็อก (ชื่อ, เนื้อหา, date_posted, ผู้แต่ง)

ค่า ('บล็อกโพสต์ที่สองของฉัน', 'นี่คือเนื้อหาของโพสต์บล็อกที่สองของฉัน', '2022-12-10', 'เจน โด');

INSERT INTO บล็อก (ชื่อ, เนื้อหา, date_posted, ผู้แต่ง)

ค่า ('บล็อกโพสต์ที่สามของฉัน', 'นี่คือเนื้อหาของบล็อกโพสต์ที่สามของฉัน', '2022-12-11', 'เจน โด');

เลือก * จากบล็อก;

ตารางผลลัพธ์:

เราสามารถใช้ฟังก์ชัน instr() เพื่อหาตำแหน่งของ substring 'blog' ในคอลัมน์เนื้อหาได้ดังรูป

เลือกชื่อ, instr(เนื้อหา, 'โพสต์') จากบล็อก;

ผลลัพธ์:

บทสรุป

ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีใช้ฟังก์ชัน INSTR() ใน MySQL เพื่อค้นหาตำแหน่งของสตริงย่อยภายในสตริง ฟังก์ชันนี้คำนึงถึงขนาดตัวพิมพ์ ดังนั้น คุณอาจต้องใช้ฟังก์ชัน เช่น ล่างและบน เพื่อแปลงสตริงการค้นหาเป็นกรณีที่คุณต้องการ