【发布时间】:2014-10-06 22:46:06
【问题描述】:
我正在尝试通过 USERID 进行查询,该 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]
【问题讨论】:
-
那些
"引用真的是您记录的一部分吗?如果是这样,您需要改用userid='"ID0003"'。ID0003 != "ID0003" -
@MarcB:没有,刚试过。
-
好吧,检查其他东西,比如不可见/空白字符。例如
'[space]foo'不等于'foo' -
我刚刚设置了一个相同的表和索引,查询工作正常。你能尝试重建你的索引吗?
-
@MarcB 没关系,你是对的。我有引号和空格,这就是为什么它一开始不起作用...当字段有换行符时,引号只是从CSV加载时的特殊字符