0

有人可以帮助我使用包含映射类型列的准备好的插入/更新语句的确切语法。认为 :

UPDATE abc SET map = map + ? where id = ?

其中 map 是地图类型列,

我找到了一个答案 Cassandra Prepared statements with collections 但它只包含生成特定地图类型对象而不是绑定的语法。

4

1 回答 1

1

对于准备好的查询,您需要像往常一样执行它,但是您需要将Cassandra::Map对象作为第一个参数传递,如下所示:

 $statement = $session->prepare('....')
 $map = Cassandra\Type::map(Cassandra\Type::varchar(), Cassandra\Type::int())
       ->create('a', 1);
 $id = 'something'
 $session->execute($statement, array('arguments' => array($map, $id)));

您需要传递Map对象,因为CQL 附加到地图需要另一个地图作为参数。

于 2018-07-14T12:43:32.053 回答