如何在具有文件位置记录的 MySQL 表中获取子字符串结果?


要提取子字符串,请在 MySQL 中照下列语法使用 substr() 方法 −

select substr(yourColumnName,startIndex,endIndex) from yourTableName limit anyValue;

select substr(yourColumnName,startIndex+endIndex) from yourTableName limit anyValue;

让我们创建一个表 −

mysql> create table demo11
−> (
−> id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
−> fileLocation text
−> );
Query OK, 0 rows affected (2.60 sec)

利用 insert 命令在表中插入一些记录 −

mysql> insert into demo11(fileLocation) values('E:/users/program/sample.sql');
Query OK, 1 row affected (0.15 sec)

mysql> insert into demo11(fileLocation) values('E:/users/data/db.sql');
Query OK, 1 row affected (0.32 sec)

mysql> insert into demo11(fileLocation) values('C:/users/data/sample2.sql');
Query OK, 1 row affected (0.13 sec)

使用 select 语句从表中显示记录 −

mysql> select *from demo11;

这将生成以下输出 −

+----+-----------------------------+
| id | fileLocation                |
+----+-----------------------------+
|  1 | E:/users/program/sample.sql |
|  2 | E:/users/data/db.sql        |
|  3 | C:/users/data/sample2.sql   |
+----+-----------------------------+
3 rows in set (0.00 sec)s

下面是获取多行子字符串结果的查询。

第一部分查询如下 −

mysql> select substr(fileLocation,1,15) from demo11 limit 1,2;

这将生成以下输出 −

+---------------------------+
| substr(fileLocation,1,15) |
+---------------------------+
| E:/users/data/d           |
| C:/users/data/s           |
+---------------------------+
2 rows in set (0.00 sec)

第二部分如下 −

mysql> select substr(fileLocation,16) from demo11 limit 1,2;

这将生成以下输出 −

+-------------------------+
| substr(fileLocation,16) |
+-------------------------+
| b.sql                   |
| ample2.sql              |
+-------------------------+
2 rows in set (0.00 sec)

更新于: 2020 年 11 月 19 日

152 次浏览

开启你的职业生涯

完成课程,获得认证

开始
广告