1

そのため、私は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 and Allタイプのクエリでは、可能であれば式内で省略したいと思います。

/.commentsについても同じことが言え、そのようなメタデータはすべて常に同じ形式になります。

/.[sometext]

この機能をアプリケーション全体で広く使用したいと思っていたので、非常に簡単な答えがあると思います。(指を交差させる

とにかく、いつものようにすべての応答とフィードバックに感謝します。

4

1 に答える 1

0

各クエリに別の条件を追加できるようです。

... AND obj_namespace NOT RLIKE '/[.][a-z]+$' ...
于 2010-03-23T01:26:51.243 に答える