首页 > 解决方案 > 使用 regexp 和 sql 查找与特定特征匹配的单词

问题描述

我想编写一个选择语句来获取其中一个与某个正则表达式匹配的所有列。

我基本上有这个 file_name 列,我想选择所有以某个单词开头、中间有某个单词并以“xlsx”结尾的文件。

我知道检查是否以某个单词开头,我可以

SELECT * FROM files WHERE file_name REGEXP '^company';

查找以 company 开头的文件,只需将其用作占位符。

在这一点之后,它可以有任何其他字符,但在中间的某个点,我正在寻找另一个词,让我们说“狗”,然后以 xlsx 结尾。

我知道要查找以 xlsx 结尾的文件名,我可以这样做:

SELECT * FROM files WHERE file_name REGEXP 'xlsx[[:>:]]';

我的主要困惑是如何将所有这 3 个案例组合成一个陈述。所以它以公司开头,然后在某个时候有狗这个词,然后在某个时候以 xlsx 结尾。

标签: mysqlsqlregex

解决方案


您可以使用以下方法将所有条件组合成一个选择:

SELECT * FROM files WHERE file_name REGEXP '^company.*dog.*xslx$';

推荐阅读