使い方
次の手順で検索が行えます。
- 「"項目名" が "値" に等しい」のように条件を指定します。
複数の項目を指定した場合は、各条件式は、
全てを満たすように結合されます(AND で結合されます)。
- 検索するデータの状態を指定します。
- 「検索する」のボタンを押せば、検索結果が出力されます。
チェックボックスの役割を次に示します。
- 同姓同名のデータのみを検索する
- このチェックボックスをチェックすると、
同姓同名のデータが他に存在するようなデータのみを検索の対象とします。
- 正規表現用のメタ文字を使う
- このチェックボックスをチェックすると、
Postgre SQL の正規表現を使うことができます。
- 検索用カラムを使わない
- 幾つかの項目は、自動的にユーザが扱いやすい値に変換されて
格納されています。しかし、この機能のために、
意図した検索が行えない場合がごく希にあります。
このチェックボックスをチェックすると、
自動で変換される前の値で検索をかけられます。
しかし、普段はあまりチェックする必要はないはずです。
このチェックボックスを使った検索の例は、
「検索の具体例」の節を参照してください。
いくつかの主な仕様
- 「値を持つ」(「値を持たない」)を指定することで、
項目が空欄の(空欄でない)データを検索することができます。
- 項目が空欄のデータは、「等しくない」では検索できません。
(この仕様は、一般のデータベースの仕様と同じです。)
- 値に何も記入されていない式は、
条件が指定されていないとみなされ無視されます。
ただし、「値を持たない」「値を持つ」を指定している場合を除きます。
- 記入された値の末尾の空白は無視されます。
- 「生年月日」が「1950/01/01」より小さい ( < )
- 生年月日では、例のように '/' で区切って数字のように扱うことができます。
'より小さい ( < )' はその日付以前、
'より大きい ( > )' はその日付以降とみなされます。
- 「学歴 : 年」が「S50」より小さい ( < )
- 学歴や職歴の年も、通常は数字のように扱うことができます。
- 「郵便番号」が「464」で始まる ( ~^ )
- 「備考」が値を持つ
- 「最終更新時刻」が「2000-10-10 10:30:00」
より大きい ( > )
- 時刻を指定する場合は、例のような形式で記入してください。
- 「郵便番号」が「46[4-6]」で始まる ( ~^ )
- (正規表現用のメタ文字を使う)
464,465,466 で始まるデータが検索できます。
このフォームは、条件式の指定の方法がやや難しいです。
しかし、このフォームを使うと、複雑な検索を行うことができます。
絞り込み検索も、検索条件式を直接指定する形で行います。
次では、具体例と共に大まかな使い方を紹介します。
- 郵便番号 = 012-3456
- 条件式は、「項目名 = 値」の形で表されます。
ここでは、'=' のようなものを演算子と呼びます。
'=' 以外の演算子では、'!=', '~', '!~', '~*', '!~*',
'<', '>', '<=', '>=', 'LIKE', 'NOT LIKE' を使うことができます。
- 通常は状態が有効なデータのみを検索します。
- 項目名には、後で示すような別名を使うことができます。
(→ 項目名の別名)
- 備考 is not null
- 'IS NULL', 'IS NOT NULL' の演算子を使うことができます。
- 性別 = 2 and ( 姓 ~ 山 or 姓 ~ 川 )
- 複数の条件式を 'AND' や 'OR' で結合することができます。
- 'AND', 'OR' の順に演算の優先順位が高くなっています。
例のように、括弧 ( ) を使って優先順位を変えることができます。
- system_did >= 2 AND system_did <= 5
- システム内部用の項目を使うことができます。
- システム内部用の項目のいずれかを一度でも利用した場合は、
状態が有効なデータだけでなく全ての状態のデータについて
検索されます。
- 備考 ~ 'OR' or 備考 ~ '\''
- 値を引用符 ' ' で囲むことで 'OR' や引用符自身などを
表すことができます。
- "\'" で引用符 ' 自身を表すことができます。
また "\\" で "\" を表すことができます。
- All
- 状態が有効なデータを全て検索します。
「system_state = 2」と同じです。
検索条件の項目名の代わりに使うことのできる文字列を
下表に示します。(*)が付いている項目は、
システム内部用の項目です。
項目名 | 別名 |
<%
foreach my $dbcol (@{ $dbi->{dbcol}{cv} }) {
print "$dbcol->{print} | ",
"$dbcol->{name} $dbi->{db}{alias}{cv}{ $dbcol->{name} }",
" |
\n";
}
foreach my $col (@{ $dbi->{db}{syscol} }) {
print "(*) ",
"$dbi->{misc}{sysprint}{ $col->{name} } | ",
"$col->{name} |
\n";
}
%>
検索を行った後で、
検索条件を絞り込んで再び検索を行うこと(絞り込み検索)ができます。
絞り込み検索の使い方は、
検索条件式の直接指定とほとんど同じです。詳しくは、
「条件式を直接指定」
の節を参照してください。
下に示すカラムは、
右辺値をコードで指定する必要があります。
コード名の一覧
項目名 | コード名 |
<%
foreach my $dbcol (@{ $dbi->{dbcol}{cv} }) {
next unless($dbcol->{code});
print "$dbcol->{print} | ", "",
join(', ', map { "$_" } @{ $dbcol->{code} }),
" |
\n";
}
%>
<%
my ($code, $sort);
foreach my $c (sort keys %{ $dbi->{code} }) {
print <
コード名 ― $c
コード | 値 |
HTML
$sort = $c eq 'country' ? sub { $a cmp $b } : sub { $a <=> $b };
$code = $dbi->{code}{$c};
foreach my $key (sort $sort keys %$code) {
print "$key | $code->{$key} |
\n";
}
print "
\n";
}
%>