如何獲取 MySQL 中指定字串中最後一個子字串的索引?


如要獲取指定字串中最後一個子字串的索引,請使用 char_length() 函式。首先,我們需要計算字串長度,然後將最後一個子字串長度從整個長度中減去。長度差即為子字串索引。

語法

語法如下 −

select CHAR_LENGTH(yourColumnName) - LOCATE('yourDelimiter ',
REVERSE(yourColumnName))+1 as anyVariableName
from yourTableName;

為了理解上述語法,我們先建立一個表格。建立表格的查詢如下 −

mysql> create table SubStringIndexDemo
   -> (
   -> Words varchar(200)
   -> );
Query OK, 0 rows affected (0.57 sec)

使用 insert 命令在表格中插入一些記錄。查詢如下 −

mysql> insert into SubStringIndexDemo values('This is MySQL Query');
Query OK, 1 row affected (0.13 sec)

mysql> insert into SubStringIndexDemo values('MySQL is a Relational Database');
Query OK, 1 row affected (0.34 sec)

mysql> insert into SubStringIndexDemo values('Java is a programming language');
Query OK, 1 row affected (0.11 sec)

mysql> insert into SubStringIndexDemo values('Spring is a Framework');
Query OK, 1 row affected (0.20 sec)

使用 select 命令顯示錶格中的所有記錄。查詢如下 −

mysql> select *from SubStringIndexDemo;

輸出

+--------------------------------+
| Words                          |
+--------------------------------+
| This is MySQL Query            |
| MySQL is a Relational Database |
| Java is a programming language |
| Spring is a Framework          |
+--------------------------------+
4 rows in set (0.00 sec)

以下是用於獲取最後一個子字串索引的查詢:

mysql> select CHAR_LENGTH(Words) - LOCATE(' ', REVERSE(Words))+1 as
PositionOfLastSubstring
   -> from SubStringIndexDemo;

輸出

+-------------------------+
| PositionOfLastSubstring |
+-------------------------+
|                      14 |
|                      22 |
|                      22 |
|                      12 |
+-------------------------+
4 rows in set (0.00 sec)

更新於: 25-6 月-2020

3K+ 瀏覽量

開始你的工作生涯

完成課程獲得認證

開始
廣告