alpersist:検索
no way to compare when less than two revisions
差分
このページの2つのバージョン間の差分を表示します。
— | alpersist:検索 [2019/02/12 00:06] (現在) – 作成 - 外部編集 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== 検索 ====== | ||
+ | |||
+ | * データを選択的に読み込むために、検索用のメソッドを用意しています。 | ||
+ | * 検索条件等を指定して、複数のレコードを読み込みます。 | ||
+ | * ベースになるデータストレージの機能によっては、フルスペックで使えない場合があります。 | ||
+ | |||
+ | ===== 簡単な使い方 ===== | ||
+ | |||
+ | <code ruby> | ||
+ | def action_search() | ||
+ | param = { : | ||
+ | results = @person.search( param ) | ||
+ | results.each {|data| | ||
+ | puts data.values, | ||
+ | } | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | * パラメータとして、検索条件を指定する例です。 | ||
+ | * この例では、年齢が20才の人のみ抽出します。 | ||
+ | * 検索条件は、AND結合のみです。 | ||
+ | |||
+ | |||
+ | ===== 検索条件 ===== | ||
+ | |||
+ | 複合条件。HashキーをSymbolで指定した場合は、常に=(イコール)で比較します。 | ||
+ | <code ruby> | ||
+ | : | ||
+ | </ | ||
+ | |||
+ | NULL条件の指定。( SQLでは、name is nullとなる) | ||
+ | <code ruby> | ||
+ | : | ||
+ | </ | ||
+ | |||
+ | 以上、以下などの指定 | ||
+ | <code ruby> | ||
+ | : | ||
+ | </ | ||
+ | |||
+ | Like検索 | ||
+ | <code ruby> | ||
+ | : | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== 並べ替え順 ===== | ||
+ | |||
+ | パラメータに、: | ||
+ | |||
+ | <code ruby> | ||
+ | def action_search() | ||
+ | param = { : | ||
+ | results = @person.search( param ) | ||
+ | results.each {|data| | ||
+ | puts data.values, | ||
+ | } | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | |||
+ | 複数のオーダー指定は、配列で指定します。 | ||
+ | |||
+ | <code ruby> | ||
+ | : | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== その他の条件 ===== | ||
+ | |||
+ | リミット、オフセット | ||
+ | <code ruby> | ||
+ | param = { : | ||
+ | </ | ||
+ | |||
+ | リミットを指定した場合は、検索後、以下のメソッドが有効になります。 | ||
+ | |||
+ | <code ruby> | ||
+ | # 前ページのオフセット値を得る。前ページがなければnil。 | ||
+ | @person.get_previous_offset() | ||
+ | |||
+ | # 次ページのオフセット値を得る。次ページがなければnil。 | ||
+ | @person.get_next_offset()] | ||
+ | </ | ||
+ | |||
+ | |||
+ | 全件数の同時取得 | ||
+ | <code ruby> | ||
+ | def action_search() | ||
+ | param = { : | ||
+ | @person.search( param ) | ||
+ | p @person.search_condition[: | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ====== SQLを直接発行して検索する ====== | ||
+ | |||
+ | * SQLを直接指定して、検索することができます。 | ||
+ | * この場合は、オブジェクト生成時に指定したテーブル名及びプライマリキーは使われず、任意のSQLが発行できます。 | ||
+ | * RDBをベースに持つPersistクラスしかサポートしません。 | ||
+ | * select( " | ||
+ | * paramは、上記searchと同様です。 | ||
+ | |||
+ | コード例 | ||
+ | <code ruby> | ||
+ | @persist.select( | ||
+ | "t1.*, t2.note" | ||
+ | "from t1 inner join t2 using(id) where d=CURRENT_DATE", | ||
+ | : | ||
+ | </ | ||
+ | |||
+ | 生成されるSQL | ||
+ | < | ||
+ | select t1.*, t2.note from t1 inner join t2 using(id) where d=CURRENT_DATE | ||
+ | </ | ||
alpersist/検索.txt · 最終更新: 2019/02/12 00:06 by hirohito