Retrieval using the IN keyword
The IN keyword can define a set of clustering columns to fetch together, supporting a "multi-get" of CQL rows.
Similar to a SQL query, in CQL queries the IN
keyword can define a
set of clustering columns to fetch together, supporting a "multi-get" of CQL rows. A
single clustering column can be defined if all preceding columns are defined for
either equality or group inclusion. Alternatively, several clustering columns may be
defined to collect several rows, as long as all preceding columns are queried for
equality or group inclusion. The defined clustering columns can also be queried for
inequality.
Note that using both IN
and ORDER BY
will require
turning off paging with the PAGING OFF
command in cqlsh.
Procedure
-
Turn off paging
cqlsh> PAGING OFF
-
Retrieve and sort results in descending order.
cqlsh> SELECT * FROM users WHERE userID IN (100,102,104) ORDER BY age DESC;
-
Retrieve rows using multiple clustering columns
event_start_date and
event_end_date. This example searches the partition key
event_ids for several events, but the partition key can also be composed as an
equality for one value.
cqlsh> SELECT * FROM calendar WHERE event_id IN (100, 101, 102) AND (event_start_date, event_end_date) IN (('2015-05-09','2015-05-31'),('2015-05-06', '2015-05-31'));
-
Retrieve rows using multiple clustering columns
event_start_date and
event_end_date and inequality.
cqlsh> SELECT * FROM calendar WHERE event_id IN (100, 101, 102) AND (event_start_date, event_end_date) >= ('2015-05-09','2015-05-24');