1

SELECT * FROM table_name WHERE date> 1309110123

Phpcassaでこれを行う方法は?これを変更する方法があるはずだと思います。

$column_family = new ColumnFamily($conn, 'Indexed1');
$index_exp = CassandraUtil::create_index_expression('birthdate', 1984);
$index_clause = CassandraUtil::create_index_clause(array($index_exp));
$rows = $column_family->get_indexed_slices($index_clause);
// returns an Iterator over:
//    array('winston smith' => array('birthdate' => 1984))

foreach($rows as $key => $columns) {
    // Do stuff with $key and $columns
    Print_r($columns)
}

誰かアイデア?

4

1 に答える 1

3

私はあなたが上に持っているものへの別のアプローチを提案します。最も簡単な方法は、行キーのレコードを別の行に列として格納することです。

$date = new DateTime();
$cf = new ColumnFamily(getCassandraConnection(), 'foobar');
$cf->insert('row1' => array('foo' => 'bar'));
$cf->insert('all_rows' => array($date->getTimestamp() => 'row1');

これで、上記のようにPHPCASSAを使用して選択を実行する場合は、column_start/column_endを使用してgetを実行できます。

$newerResults = $cf->get('all_rows', $columns=null, $column_start=1309110123);

誕生日の場合、RDBMSの世界から見た場合と同じように醜いので、「user_birthdates」の行に新しい列を作成します。各列はbirthday:uuidであり、一意になります。

于 2011-06-26T17:28:31.123 に答える