CQL 使用连接查询更新集合<bigint>
CQL UPDATE a set<bigint> with join query
我必须根据某些条件使用 CQL 从 table 中删除一些数据,这将从另一个 table 获取数据。但是我无法形成查询。
这是我需要删除数据的 table 详细信息:
Table Name : xyz_group
Columns : dept_id [int] , sub_id [set<bigint>]
PRIMARY KEY (Partition key) : dept_id
多个dept_id可以有相同的sub_id。数据如下所示:
dept_id | sub_id
-------------------------------
1098 | 345678298, 24579123, 8790455308
2059 | 398534698, 24579123, 8447659928
3467 | 311209878, 24579123, 8790455308, 987654321,
我只需要从所有行中删除 ---> 24579123、8790455308。
这是我的 SELECT 查询,它将从另一个 table abc_list 将从 table xyz_group
中删除
select sub_id from abc_list where sub_name='XYZ';
上述查询的输出将给我一个 sub_id 的列表,我想从 table xyz_group。所以基本上我想通过从集合中删除数据来更新集合。如下所示:
UPDATE xyz_group SET sub_id = sub_id - [ query result from above select query ] WHERE dept_id in (1098, 2059, 3467, ...);
我试图从集合中删除一个元素,但出现以下错误:
UPDATE xyz_group SET sub_id = sub_id - [ 24579123 ] WHERE dept_id in (1098, 2059, 3467, ...);
Error : Column sub_id type set<bigint> is not compatible with type list<int>
tables 有大约 >50k 的记录。任何人都可以帮助形成一个正确的查询来更新。
下面的查询现在对我有用:
UPDATE xyz_group SET sub_id = sub_id - { 24579123 } WHERE dept_id in (1098, 2059, 3467, ...);
但我正在执行一个两步过程来更新 table。首先收集所需的 sub_id 然后使用单独的 UPDATE 查询更新 table.Not 能够在单个查询。
我必须根据某些条件使用 CQL 从 table 中删除一些数据,这将从另一个 table 获取数据。但是我无法形成查询。
这是我需要删除数据的 table 详细信息:
Table Name : xyz_group
Columns : dept_id [int] , sub_id [set<bigint>]
PRIMARY KEY (Partition key) : dept_id
多个dept_id可以有相同的sub_id。数据如下所示:
dept_id | sub_id
-------------------------------
1098 | 345678298, 24579123, 8790455308
2059 | 398534698, 24579123, 8447659928
3467 | 311209878, 24579123, 8790455308, 987654321,
我只需要从所有行中删除 ---> 24579123、8790455308。
这是我的 SELECT 查询,它将从另一个 table abc_list 将从 table xyz_group
中删除select sub_id from abc_list where sub_name='XYZ';
上述查询的输出将给我一个 sub_id 的列表,我想从 table xyz_group。所以基本上我想通过从集合中删除数据来更新集合。如下所示:
UPDATE xyz_group SET sub_id = sub_id - [ query result from above select query ] WHERE dept_id in (1098, 2059, 3467, ...);
我试图从集合中删除一个元素,但出现以下错误:
UPDATE xyz_group SET sub_id = sub_id - [ 24579123 ] WHERE dept_id in (1098, 2059, 3467, ...);
Error : Column sub_id type set<bigint> is not compatible with type list<int>
tables 有大约 >50k 的记录。任何人都可以帮助形成一个正确的查询来更新。
下面的查询现在对我有用:
UPDATE xyz_group SET sub_id = sub_id - { 24579123 } WHERE dept_id in (1098, 2059, 3467, ...);
但我正在执行一个两步过程来更新 table。首先收集所需的 sub_id 然后使用单独的 UPDATE 查询更新 table.Not 能够在单个查询。