我可以选择带有CQL的Blob列表吗?

问题描述 投票:1回答:1

我将所有event_id存储为斑点类型,并希望一次选择多个event_id

如果我一一发送查询,效果很好。像这样一个:

SELECT JSON event_id, user FROM demo.events WHERE customer_id=1234 AND event_id=0x123123;

但是我想使用IN子句同时查询多个event_id。我尝试了以下CQL,但失败了:

SELECT JSON event_id, user FROM demo.events WHERE customer_id=1234 AND event_id in [0x123123, 0x456456, 0x789789];

给出错误信息

SyntaxException: line 1:106 no viable alternative at input 'event_id'

有人可以告诉我是否可以这样做?谢谢。

cql scylla
1个回答
4
投票

IN运算符requires tuble_literal位于表达式的右侧。可以用Tuples定义()。在您的情况下,IN (x, y, z)将起作用:

$ create table test.a (customer_id int, event_id blob, user text, PRIMARY KEY (customer_id, event_id));

$ insert into test.a (customer_id, event_id, user) values (1, 0x123123, 'a');
$ insert into test.a (customer_id, event_id, user) values (1, 0x123124, 'a');
$ insert into test.a (customer_id, event_id, user) values (1, 0x123125, 'a');

$ SELECT JSON event_id, user FROM test.a WHERE customer_id=1 AND event_id in (0x123123, 0x123124);

[json]
---------------------------------------
 {"event_id": "0x123123", "user": "a"}
 {"event_id": "0x123124", "user": "b"}

(2 rows)
© www.soinside.com 2019 - 2024. All rights reserved.