CQL-在SELECT语句中组合两个字段

时间:2013-09-27 05:23:03

标签: cassandra cql

在我的cassandra(columnfamily)表中,我有一个字段“message1”和一个字段“message2”。我想选择message1 + space + message2是某个值的所有记录。

如何在select语句中将两个字段(message1 + message)连接或合并为一个,如在mysql中

  select message1 + ' ' + message2 as WholeMessage 
  from MessageTable  
  where message1 + ' ' + message2 like '%MyWholeMessageString%'

2 个答案:

答案 0 :(得分:2)

回答你的问题:目前在Cassandra这是不可能的。

详细说明,CQL对任何类型的函数都提供非常有限的支持。实际上,当前的规范只定义了其中的三个:http://cassandra.apache.org/doc/cql3/CQL.html#functions

另外,不要指望在CQL中进行任何复杂的处理和过滤 - 参考你的查询,在CQL中没有诸如'like'之类的操作。

我建议您批量检索数据并执行所有处理客户端,或者相反地在插入Cassandra之前需要处理您的数据。尝试将类似SQL的逻辑转换为CQL只会让你陷入死胡同。

希望这有帮助。

答案 1 :(得分:1)

@Babu K

这取决于您的数据模型的执行方式。你可以在这里粘贴用于创建表/列系列的脚本吗?您是否需要能够仅使用message1获取数据?或只是message2?