| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
sqlite_create_aggregateSQLiteDatabase::createAggregate(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) sqlite_create_aggregate -- SQLiteDatabase::createAggregate — SQLステートメントで使用する集約UDFを登録する 説明
public void sqlite_create_aggregate
( resource
$dbhandle
, string $function_name
, callable $step_func
, callable $finalize_func
[, int $num_args = -1
] )オブジェクト指向型 (メソッド):
void SQLiteDatabase::createAggregate
( string
$function_name
, callable $step_func
, callable $finalize_func
[, int $num_args = -1
] )sqlite_create_aggregate() は、 sqlite_create_function() に似ていますが、 クエリの全レコードを通じて集約された結果を計算するために使用される 関数を登録するところが異なります。
この関数と sqlite_create_function() の主な違い
は、二つの関数が集約を管理するために必要であることです。
パラメータ
返り値値を返しません。 例
例1 max_length 集約関数の例
<?php
この例では、テーブルのあるカラムに存在する最長な文字列長を計算する
集約関数を生成します。各レコードに対して max_len_step
関数がコールされ、
全てのレコードが処理された後、SQLite は集約結果を決定するために
max_len_finalize 関数をコールします。
ここで、
ヒント
SQLite がクエリを処理するために大量のメモリを使用する原因になるので、 コンテキストの値のコピーをストアした後でそれらを処理することは 推奨されません。 もし 32 バイトの文字列を含む 100 万レコードがメモリにストアされた場合、 どの程度のメモリが必要になるか考えてみてください。 ヒント
sqlite_create_function() や sqlite_create_aggregate() を用いることで、 SQLite のネイティブな SQL 関数をオーバーライドすることが可能です。 参考
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「sqlite_create_aggregate - SQLステートメントで使用する集約UDFを登録する」をGoogle検索
|