MySQL正则表达式语句

MySQL正则表达式语句,mysql,sql,regex,database,preg-match,Mysql,Sql,Regex,Database,Preg Match,我从未在mySQL中遇到过RegEx,在一篇专栏文章中,我有500多个不同的服务器版本。是否可以只在正斜杠之前提取任何内容,以便通过过滤掉版本来检测最常见的服务器 Microsoft-IIS/7.5 Microsoft-IIS/6.0 Apache/2.2.24 (Unix) Apache/2.2.15 (CentO Apache/1.3.42 (Unix) Apache/2.2.22 (Ubunt Resin/3.0.23 Apache/2.2.0 (Linux/ 在mysql中,正则表达式

我从未在mySQL中遇到过RegEx,在一篇专栏文章中,我有500多个不同的服务器版本。是否可以只在正斜杠之前提取任何内容,以便通过过滤掉版本来检测最常见的服务器

Microsoft-IIS/7.5
Microsoft-IIS/6.0
Apache/2.2.24 (Unix)
Apache/2.2.15 (CentO
Apache/1.3.42 (Unix)
Apache/2.2.22 (Ubunt
Resin/3.0.23
Apache/2.2.0 (Linux/

在mysql中,正则表达式不能返回匹配的子字符串,但仅在字符串是否匹配正则表达式时返回布尔值

您需要的只是一个
SUBSTR

SUBSTRING(col, 1, LOCATE('/', col) - 1)

但是请记住,如果字符串中没有
/
,那么最终将得到一个空字符串,因此mysql正则表达式中的无法返回匹配的子字符串,而只能在字符串与正则表达式是否匹配时返回布尔值

您需要的只是一个
SUBSTR

SUBSTRING(col, 1, LOCATE('/', col) - 1)
但是请记住,如果字符串中没有
/
,那么最终将得到一个空字符串

SELECT DISTINCT SUBSTRING(version,1,LOCATE('/', version)-1) FROM TableName
由于
不同
,因此仅显示唯一的行。

此处

SELECT DISTINCT SUBSTRING(version,1,LOCATE('/', version)-1) FROM TableName

由于
不同
,因此只显示唯一的行。

是否需要正则表达式?对于
/
的'index of'和'substring'操作似乎已经足够了。您是否已经有了一个与之匹配的正则表达式?另外:您需要一个正则表达式吗?对于
/
就足够了。您是否已经有了一个与此匹配的正则表达式?另外:是的,但是可以在WHERE中使用该布尔值statement@Christian斯图尔特:可以,所以呢?“只能在正斜杠前提取任何东西吗”是的,但那个布尔值可以用在WHERE中statement@Christian斯图尔特:可以,那么?在正斜杠“哇,我刚搜索了一下,注意到我收集的一些网站服务器有”;“放下表服务器”之前,是否可能只获取任何内容“这可能是网站管理员故意做的吗?有人试图弄乱你的数据库,你是如何在php文件中编写代码的?事实上,我的数据库是在本地主机上运行的,没有外部访问我得到了它选择子字符串(版本,1,定位('/',版本)-1)作为服务器,计数(*)从TableName开始,我从来没有见过新的sql有这些功能,现在一切都实现了,我想向你们展示我的结果,你们觉得我的论文怎么样哇,我刚搜索了一下,发现我收集的一些网站服务器有“;DROP TABLE server”这可能是网站管理员故意做的吗?有人试图弄乱你的数据库,你是如何在你的php文件中编码的?实际上我的数据库是在我的本地主机上运行的,没有外部访问我得到了它选择子字符串(版本,1,定位(“/”,版本)-1)作为服务器,计数(*)从TableName开始,我从来没有见过新的sql有这些功能,现在一切都实现了,我想向你们展示我的结果,你们认为我的结论是什么