2013-09-27 31 views
0

在我的cassandra(columnfamily)表中,我有一个字段“message1”和一个字段“message2”。我想选择message1 + space + message2是特定值的所有记录。CQL-在SELECT语句中组合两个字段

我如何Concat的或合并两个字段(MESSAGE1 +消息)为一个在SELECT语句在MySQL

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

回答

1

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

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

另外,不要指望在CQL中做任何复杂的处理和过滤 - 参考您的查询,在CQL中没有像'like'这样的操作。

我建议你一批检索数据并执行你所有的处理客户端,或者相反地处理你的数据,因为你需要它插入到卡桑德拉之前。试图将SQL逻辑转换为CQL只会让你陷入死胡同。

希望这会有所帮助。

+0

+1你将不得不做2个查询来做到这一点。 –

1

@Babuķ

这取决于你如何做你的数据模型。你能在这里粘贴用于创建表格/列族的脚本吗?你需要使用message1来获取数据吗?或只是message2?