我试图通过USERID进行查询,这是一个索引,并且是一个复合键的一部分,在一个包含~1000行的表中:
create table MYTABLE (
DATE timestamp,
USERID text,
FIRST_NAME text,
LAST_NAME text,
primary key (DATE, USERID));
create index on mytable(userid);
以下工作正常:
select userid from mytable limit 5;
userid
-------------
"ID0003"
"ID0004"
"ID0005"
"ID0006"
"ID0007"
(5 rows)
但如果我通过其中一个ID查询,我会得到0行
select * from mytable where userid='ID0003' limit 5 ALLOW FILTERING;
(0 rows)
为什么我会获得0行?我有一个索引设置,所以that is not the problem。
[cqlsh 4.1.1 | Cassandra 2.0.10 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
答案 0 :(得分:0)
这是CSV导入工作方式的工件。我的数据来自CSV,它使用引号作为特殊字符。所以我的行看起来像"2014-09-15", "ID0547" , "Firstname 0547" , "Lastname 0547"
。
旧版文档指出quotation marks are only special characters when a field has a newline。较新的文档没有注意到这一点,但行为仍然存在。因此,我的ID格式为[SPACE][DOUBLEQUOTE]ID0547[DOUBLEQUOTE][SPACE]
。