MST

星途 面试题库

面试题:Cassandra中元组类型嵌套的复杂查询

在Cassandra中已经有一个包含嵌套元组类型数据的表,表结构为:CREATE TABLE user_info (user_id UUID PRIMARY KEY, user_name TEXT, user_skills list<tuple<text, int>>);其中user_skills存储技能名称和技能等级。现在要查询所有技能等级大于3的用户及其技能信息,写出对应的CQL查询语句,并解释其原理。
44.5万 热度难度
数据库Cassandra

知识考点

AI 面试

面试题答案

一键面试
SELECT user_id, user_name, user_skills 
FROM user_info 
WHERE user_skills[1][1] > 3;

原理解释:在上述查询语句中,SELECT user_id, user_name, user_skills 用于选择需要返回的列,即用户ID、用户名和用户技能信息。FROM user_info 指明要查询的表为 user_infoWHERE user_skills[1][1] > 3 为过滤条件,user_skills 是一个列表类型,列表中每个元素是一个元组,[1] 表示元组的第二个元素(Cassandra中索引从1开始),这里是技能等级,通过 user_skills[1][1] > 3 筛选出技能等级大于3的记录。需要注意的是,这种直接通过索引访问嵌套结构元素进行过滤的方式,在实际应用中可能受限于数据模型和查询性能,Cassandra更适合按主键和分区键进行高效查询。