这是我的 table 。
cqlsh:sachhya> select * FROM emp;
emp_id | age | emp_name | exp | mobile
--------+-----+--------------+-----+------------
5 | 29 | RAHUL SHARMA | 9 | 2312343123
1 | 24 | SACHHYA | 15 | 9090987876
2 | 14 | SACHHYA | 15 | 9090987876
4 | 22 | ANKUR | 32 | 3213456321
90 | 30 | sumeet | 2 | 91234212
3 | 14 | SACHHYA | 3 | 9090987876
主键(分区键)是 emp_id。
我想显示 emp_name 为“SACHHYA”的所有行。我应该使用什么命令?
下面是我正在使用的 cql 查询。
select * FROM emp WHERE emp_name='SACHHYA';
但是我得到一个错误:
InvalidRequest: Error from server: code=2200 [Invalid query] message="Predicates on non-primary-key columns (emp_name) are not yet supported for non secondary index queries"
最佳答案
我找到了一个解决我的问题的方法,我们可以在 'emp_name' 列上创建索引,然后我们可以使用 'emp_name' 过滤器。
例如:
CREATE INDEX NameIndx ON emp (emp_name);
SELECT * from sachhya.emp WHERE emp_name = 'SACHHYA';
我的输出:
emp_id | age | desegnation | emp_name | exp | mobile
--------+-----+------------------+----------+-----+------------
711 | 22 | Trainee Engineer | SACHHYA | 1 | 9232189345
2 | 24 | Engineer | SACHHYA | 3 | 9033864540
我的表:
emp_id | age | desegnation | emp_name | exp | mobile
--------+-----+------------------+----------+------+------------
5 | 29 | Technical Lead | RAHUL | 9 | 2312343123
10 | 45 | Deleviry Manager | ANDREW | 22 | 9214569345
711 | 22 | Trainee Engineer | SACHHYA | 1 | 9232189345
2 | 24 | Engineer | SACHHYA | 3 | 9033864540
4 | 26 | Engineer | ANKUR | 3 | 3213456321
22 | 20 | Intern | SAM | null | 8858699345
7 | 22 | Trainee Engineer | JACOB | 1 | 9232189345
17 | 28 | Senior Engineer | JACK | 4 | 8890341799
90 | 30 | Senior Engineer | HERCULES | 6 | 9353405163
3 | 32 | Technical Lead | ROSS | 8 | 7876561355
关于database - 获取cassandra cql中列值相同的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49879405/