2013-09-27 8 views
0

В моей таблице cassandra (columnfamily) у меня есть поле «message1» и поле «message2». Я хотел бы выбрать все записи, где message1 + space + message2 является определенным значением.CQL- Объединение двух полей в оператор SELECT

Как я могу Concat или объединить два поля (Сообщение1 + сообщение) в одно в операторе отбора, как в MySQL

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

ответ

1

Чтобы ответить на ваш вопрос, в данный момент это невозможно сделать в Кассандре.

Чтобы разработать, CQL имеет очень ограниченную поддержку для любых функций. Фактически, текущая спецификация определяет только три из них: http://cassandra.apache.org/doc/cql3/CQL.html#functions

Кроме того, не ожидайте выполнения сложной обработки и фильтрации на CQL, ссылаясь на ваш запрос, в CQL нет операции типа «как».

Я бы предложил вам получить данные в пакете и выполнить всю вашу обработку на стороне клиента или, наоборот, обработать ваши данные по мере необходимости до, вставляя в Кассандру. Попытка перевести SQL-логику на CQL приведет вас в тупик.

Надеюсь, это поможет.

+0

+1 Для этого вам нужно будет сделать 2 запроса. –

1

@Babu K

Это зависит от того, как вы сделали вашу модель данных. Вы можете вставить здесь скрипт, используемый для создания семейства table/column? Нужно ли вам получать данные, используя только message1? или просто сообщение2?

Смежные вопросы