所以我一直在与 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]
我希望在整个应用程序中广泛使用此功能,所以我希望可能有一个非常简单的答案。(交叉手指)
无论如何,一如既往地感谢任何/所有回复和反馈。