【发布时间】:2020-12-10 20:47:48
【问题描述】:
查询:
SELECT
t1.package
FROM
(
SELECT 'openstack-neutron-12.1.0-2.el7ost.noarch' AS package UNION
SELECT 'openstack-neutron-12.1.1-1.el7.noarch' AS package UNION
SELECT 'openstack-neutron-common-12.1.0-2.el7ost.noarch' AS package UNION
SELECT 'openstack-neutron-common-12.1.1-1.el7.noarch' AS package
) AS t1
WHERE t1.package REGEXP "[^openstack-neutron-´digit]"
需要:我想要前两行,我只希望主中子包,所以我想如果我过滤第二个 hifen,下一个是数字,模式就可以了。
这是马里亚布德。
有人可以帮忙吗?
编辑:'((?i)openstack-neutron-api-(?-i))\\d.*'。
这直接在 sql 客户端上工作,但我遇到了 PHP 问题(真的很奇怪)
我真的不知道 REGEX 中的字符会根据语言发生如此大的变化。
谢谢
【问题讨论】:
-
如果不需要
openstack-neutron-common-....,为什么还要选择它们? -
这只是一个大型数据库的虚拟示例,我有几个子查询
-
你能展示你的PHP代码吗?
-
我创建了另一个线程:stackoverflow.com/questions/63527380/… 原因可能与 php 有关
-
@davser - “方括号” (
[]) 用于“字符类”。 “括号” (()) 用于分组。