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)
}
有人有想法吗?
答案 0 :(得分: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'创建一个新列,其中每个列名都是生日:uuid以保持独特性。