Mebiusbox 2.x ユーザーガイド
検索クエリ
検索クエリとは、検索の条件を文字列化したものです。
フィルターやスマートタグ等で、検索クエリを使用します。
構文
検索クエリは SQL言語を参考に作成した独自の言語となっています。
検索クエリは以下の要素から構成されています。
- 条件式
- OR
- (,)
また、大文字小文字は区別しますので注意してください。
条件式
条件式は次のように構成されます。
左辺値 演算子 右辺値
左辺値
演算子
= | 等価 |
---|---|
!= | 非等価 |
<= | 以下 |
< | より小さい |
>= | 以上 |
> | より大きい |
EQ | 文字列等価 ( = と同じ ) |
NEQ | 文字列非等価 ( != と同じ ) |
IEQ | 文字列等価(小文字大文字を無視) |
NIEQ | 文字列非等価(小文字大文字を無視) |
FIND | 文字列検索 |
IFIND | 文字列検索(小文字大文字を無視) |
LIKE | ワイルドカード |
ILIKE | ワイルドカード(小文字大文字を無視) |
REGEXP | 正規表現 |
IREGEXP | 正規表現(小文字大文字を無視) |
右辺値
右辺値には文字列, 文字列(日付), 数値を指定できます。
文字列
文字列は必ず”(ダブルクォーテーション)で囲む必要があります。
文字列(日付)
日付は文字列で指定します。
指定できる日付の書式は以下のとおりです。
また、特別な変数を使うことができます。
例えば昨日を表したい場合は次のようになります。
先月の1日は次のようになります。
ここで、-1, =1 は空白を入れずに指定する必要があります。- 1, = 1 は指定できません。
today, now, time で指定できるパラメータには以下のものがあります。
では、使用例です。今週はこのようになります。
もし、今日を指定したい場合に次のように指定すると…
そこで.ymd を使用することで、時分秒の情報を取り除きます。
日付も文字列なので、”(ダブルクォーテーション)で囲む必要があります。
指定できる日付の書式は以下のとおりです。
- 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.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