Mebiusbox 2.x ユーザーガイド

検索クエリ

検索クエリとは、検索の条件を文字列化したものです。
フィルターやスマートタグ等で、検索クエリを使用します。

構文

検索クエリは SQL言語を参考に作成した独自の言語となっています。

検索クエリは以下の要素から構成されています。

  • 条件式
  • OR
  • (,)
それぞれの間に半角空白を入れる必要があります。
また、大文字小文字は区別しますので注意してください。

条件式

条件式は次のように構成されます。
左辺値 演算子 右辺値

左辺値

左辺値にはファイル名などの項目を指定します。それは$.xxxという形で指定します。詳しくはこちら

演算子

=等価
!=非等価
<=以下
<より小さい
>=以上
>より大きい
EQ文字列等価 ( = と同じ )
NEQ文字列非等価 ( != と同じ )
IEQ文字列等価(小文字大文字を無視)
NIEQ文字列非等価(小文字大文字を無視)
FIND文字列検索
IFIND文字列検索(小文字大文字を無視)
LIKEワイルドカード
ILIKEワイルドカード(小文字大文字を無視)
REGEXP正規表現
IREGEXP正規表現(小文字大文字を無視)

右辺値

右辺値には文字列, 文字列(日付), 数値を指定できます。

文字列

文字列は必ず”(ダブルクォーテーション)で囲む必要があります。

文字列(日付)

日付は文字列で指定します。
指定できる日付の書式は以下のとおりです。
  • 2010/03/01
  • 2010/03/01 00:00:00
  • 2010:01:01 00:00:00
  • 2010-02-01T00:00:00+09:00
  • Sun, 05 Nov 2006 16:53:33 +0900

また、特別な変数を使うことができます。
  • today
  • now
  • time
todayは年月日、nowは年月日+時分秒、timeは一時変数です。

例えば昨日を表したい場合は次のようになります。
today.day -1 today.day と -1 の間には半角空白を入れます。
先月の1日は次のようになります。
today.month -1 time.day =1 timeは直前の日付を表します。today.month -1 で先月にし、time.day =1 で1日に設定しています。
ここで、-1, =1 は空白を入れずに指定する必要があります。- 1, = 1 は指定できません。

today, now, time で指定できるパラメータには以下のものがあります。
  • year (1960 .. )
  • month (1 .. 12)
  • day (1 .. 31)
  • dayofweek (0 .. 6)
  • hour (0 .. 23)
  • minute (0 .. 59)
  • second (0 .. 59)

では、使用例です。今週はこのようになります。
$.File.LastWriteTime.ymd >= "today.dayofweek =0" $.File.LastWriteTime.ymd <= "today" .ymd はマニピュレータです。これは最終更新日($.File.LastWriteTime)の年月日だけを抽出します。
もし、今日を指定したい場合に次のように指定すると…
$.File.LastWriteTime = "today" これでは正常に検索できません。 date 型の変数は年月日+時分秒の情報を持っており、today は年月日だけなので、内部では 2010/09/05 09:01:00 = 2010/09/05 00:00:00 となり、一致しません。
そこで.ymd を使用することで、時分秒の情報を取り除きます。

日付も文字列なので、”(ダブルクォーテーション)で囲む必要があります。

数値

数値は 10 進数、16 進数が指定できます。16 進数の場合は 0x100 のように 0x をつけます。

OR

条件式を複数指定した場合、AND となります。つまり、指定した条件を全て満たすものを検索します。 もし、ファイル名に「avi」もしくは「wmv」が含まれているものを検索したい場合は OR を使います。
$.File.Name FIND "avi" OR $.File.Name FIND "wmv"

(,)

ファイル名に「avi」もしくは「wmv」が含まれていて、ファイルサイズが 100MB 以上のものを検索したい場合は、 次のように () を使います。
( $.File.Name FIND "avi" OR $.File.Name FIND "wmv" ) $.File.Size > 100000000