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)
}
有什么想法吗?
最佳答案
我会建议您使用上述方法的替代方法。最简单的方法是将行键的记录存储在另一行中,作为列,如下所示:
$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 进行获取:
$newerResults = $cf->get('all_rows', $columns=null, $column_start=1309110123);
在生日的情况下,从 RDBMS 世界看起来很丑陋,在一行中为“user_birthdates”创建一个新列,其中每个列名都是 birthday:uuid 以保持唯一性。
关于php - Cassandra 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6485449/