在 MySQL 中,从文件名为字符串的列中仅获取文件扩展名?
mysqlmysqli database
为此,请使用 substring_index() 函数。
语法如下
select substring_index(yourColumnName, '. ', -1) AS anyAliasNamefrom yourTableName;
首先我们创建一个表。创建表的查询如下
mysql> create table AllFiles - > ( - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > UserName varchar(10), - > FileName varchar(100) - > ); Query OK, 0 rows affected (0.65 sec)
使用 insert 命令在表中插入一些记录。
查询如下
mysql> insert into AllFiles(UserName,FileName) values('Larry','AddTwoNumber.java'); Query OK, 1 row affected (0.18 sec) mysql> insert into AllFiles(UserName,FileName) values('Mike','AddTwoNumber.python'); Query OK, 1 row affected (0.15 sec) mysql> insert into AllFiles(UserName,FileName) values('Sam','MatrixMultiplication.c'); Query OK, 1 row affected (0.16 sec) mysql> insert into AllFiles(UserName,FileName) values('Carol','vector.cpp'); Query OK, 1 row affected (0.15 sec)
使用 select 语句显示表中的所有记录。
查询如下
mysql> select *from AllFiles;
以下是输出 −
+----+----------+------------------------+ | Id | UserName | FileName | +----+----------+------------------------+ | 1 | Larry | AddTwoNumber.java | | 2 | Mike | AddTwoNumber.python | | 3 | Sam | MatrixMultiplication.c | | 4 | Carol | vector.cpp | +----+----------+------------------------+ 4 rows in set (0.00 sec)
这是在 MySQL 中仅获取文件扩展名的查询
mysql> select substring_index(FileName,'.',-1) AS ALLFILENAMEEXTENSIONS from AllFiles;
以下是输出 −
+-----------------------+ | ALLFILENAMEEXTENSIONS | +-----------------------+ | java | | python | | c | | cpp | +-----------------------+ 4 rows in set (0.00 sec)