所以,我一直在努力RLIKE拉在新的应用程序的一些数据,大多享受它。

到目前为止我一直在使用RLIKE查询已返回3种类型的结果(文件,目录和一切)。

在查询(和例子的结果)如下:

**All**:

SELECT * FROM public WHERE obj_owner_id='test' AND obj_namespace 
RLIKE '^user/test/public/[-0-9a-z_./]+$' ORDER BY obj_namespace

user/test/public/a-test/.comment
user/test/public/a-test/.delete
user/test/public/directory/
user/test/public/directory/image.jpg
user/test/public/index
user/test/public/site-rip
user/test/public/site-rip2
user/test/public/test-a
user/test/public/widget-test

**Files**:

SELECT * FROM public WHERE obj_owner_id='test' AND obj_namespace 
RLIKE '^user/test/public/[-0-9a-z_./]+[-0-9a-z_.]+$' ORDER BY obj_namespace


user/test/public/a-test/.comment
user/test/public/a-test/.delete
user/test/public/directory/image.jpg
user/test/public/index
user/test/public/site-rip
user/test/public/site-rip2
user/test/public/test-a
user/test/public/widget-test

**Directories**:

SELECT * FROM public WHERE obj_owner_id='test' AND obj_namespace 
RLIKE '^user/test/public/[-0-9a-z_./]+/$' ORDER BY obj_namespace

user/test/public/directory/

此可以很好地用于上述3个基本场景但在某些情况下,我将包括特别“后缀”我想从查询结果中排除(而不必诉诸于PHP函数来做到这一点)。

这样的字符串的一个很好的例子将是:

user/test/public/a-test/.delete

这数据(有更多的行然后只是obj_namespace)被认为是删除,并且在文件所有类型的查询我想它被表达内省略如果可能的话。

也是一样的/.comments并且所有这样的元数据将始终在相同的格式:

/.[sometext]

我所希望的在整个我的应用程序广泛使用此功能,所以我希望有可能是一个非常简单的答案。 (交叉指

无论如何,感谢一如继往地为任何/所有响应和反馈。

有帮助吗?

解决方案

像你声音可以只添加另一个条件的每个查询:

... AND obj_namespace NOT RLIKE '/[.][a-z]+$' ...
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top