5

我有一个大约 20k 文件名的表。如何选择不同扩展名的列表?文件扩展名可以被认为是最后一个后不区分大小写的字符串.

4

3 回答 3

11

您可以使用 substring_index:

SELECT DISTINCT substring_index(column_containing_file_names,'.',-1) FROM table

-1 表示它将开始搜索“。” 从右侧。

于 2012-06-19T01:19:42.810 回答
1

MySQL 和其他数据库中有一个非常酷和强大的功能是在选择数据示例时能够合并正则表达式语法

SELECT something FROM table WHERE column REGEXP 'regexp'

看到这个http://www.tech-recipes.com/rx/484/use-regular-expressions-in-mysql-select-statements/

所以你可以写模式来选择你想要的。

于 2012-06-19T01:21:11.237 回答
0

@bnvdarklord 给出的答案是正确的,但它会在结果集中包含没有扩展名的文件名,因此如果您只想要扩展名模式,请使用以下查询。

SELECT DISTINCT substring_index(column_containing_file_names,'.',-1) FROM table where column_containing_file_names like '%.%';
于 2017-11-01T05:51:51.757 回答