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

รับดัชนีของสตริงย่อยสุดท้ายในสตริงที่กำหนดใน MySQL หรือไม่


หากต้องการรับดัชนีของสตริงย่อยสุดท้ายในสตริงที่กำหนด ให้ใช้ฟังก์ชัน 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;

ผลลัพธ์

<ก่อนหน้า>+-------------------------+| PositionOfLastSubstring |+--------------------------------------+| 14 || 22 || 22 || 12 |+-----------------------------------+4 แถวในชุด (0.00 วินาที)