Итак, я работал с 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) считаются удаленными, и в запросах типа Files и All я бы хотел, чтобы их было по возможности опущено в выражении .
То же самое относится к /.comments, и все такие метаданные всегда будут в одном формате:
/.[sometext]
Я надеялся широко использовать эту функцию в своем приложении, поэтому надеюсь, что ответ может быть очень простым. ( скрещивает пальцы )
В любом случае, спасибо как всегда за любые / все ответы и отзывы.