หากต้องการรับดัชนีของสตริงย่อยสุดท้ายในสตริงที่กำหนด ให้ใช้ฟังก์ชัน char_length() อันดับแรก เราต้องคำนวณความยาวของสตริงและลบความยาวสตริงย่อยสุดท้ายออกจากความยาวทั้งหมด ความแตกต่างของความยาวคือดัชนีของสตริงย่อย
ไวยากรณ์
ไวยากรณ์มีดังนี้ -
เลือก CHAR_LENGTH(yourColumnName) - LOCATE('yourDelimiter ',REVERSE(yourColumnName))+1 เป็น anyVariableNamefrom yourTableName;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตารางก่อน แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง SubStringIndexDemo -> ( -> Words varchar(200) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.57 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า SubStringIndexDemo ('This is MySQL Query'); Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า SubStringIndexDemo ('MySQL is a Relational Database'); Query OK, 1 แถวได้รับผลกระทบ (0.34 วินาที)mysql> แทรกลงในค่า SubStringIndexDemo ('Java เป็นภาษาการเขียนโปรแกรม'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า SubStringIndexDemo ('Spring is a Framework'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.20 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก SubStringIndexDemo;
ผลลัพธ์
<ก่อนหน้า>+--------------------------------+| คำ |+--------------------------------+| นี่คือแบบสอบถาม MySQL || MySQL เป็นฐานข้อมูลเชิงสัมพันธ์ || Java เป็นภาษาโปรแกรม || Spring is a Framework |+--------------------------------+4 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามที่สามารถใช้เพื่อรับดัชนีของสตริงย่อยสุดท้าย::
mysql> เลือก CHAR_LENGTH(คำ) - LOCATE(' ', REVERSE(Words))+1 เป็นPositionOfLastSubstring -> จาก SubStringIndexDemo;