我是卡桑德拉的新手。我在 cassandra 查询中使用 IN 时遇到问题。
如果表没有 SET 类型的列,则它可以工作。
CREATE TABLE test (
test_date bigint,
test_id bigint,
caption text,
PRIMARY KEY(test_date,test_id)
);
select * from test where test_date = 2022015 and test_id IN (1,2);
但是如果我添加一列 SET 类型 f.e.tags set在上表中并重新运行选择查询,它给出错误。
CREATE TABLE test1 (
test_date bigint,
test_id bigint,
tags set<text>,
caption text,
PRIMARY KEY(test_date,test_id)
);
select * from test1 where test_date = 2022015 and test_id IN (1,2);
code=2200 [无效查询] message="无法限制列“test_id”
IN 关系作为集合由查询选择”
我不知道为什么这个限制应该特别适用于集合。但在您的情况下,您可以通过将测试作为分区键的一部分来解决此问题:
PRIMARY KEY((test_date,test_id))
只要指定组合键的第一部分(test_date),您就可以执行 IN 查询。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)