Conditional querying
We can do conditional querying in Cassandra using the WHERE
clause. These conditions can be made using primary key and/or secondary indexed columns.
Conditions on a partition key
Only equality or IN
relations are allowed on the queries based on the partition key. Also, IN
relations are only allowed on the last part of the partition key. A complete partition key is required in query condition. For example, in the cars_ratings_by_table
column family, only the following queries are allowed:
SELECT * FROM cars_ratings_by_brand WHERE brand = 'Audi' and model = 'Q7' SELECT * FROM cars_ratings_by_brand WHERE brand = 'Audi' and model = 'Q7' SELECT * FROM cars_ratings_by_brand WHERE brand = 'Maruti' AND model IN ('Q7', 'Swift')
The following queries are invalid:
SELECT * FROM cars_by_brand WHERE brand IN ('Audi', 'Maruti') AND model IN ('Q7', 'Swift') // Used IN in first part of partition key SELECT * FROM cars_by_brand WHeRE brand = 'Maruti' // Incomplete partition key
Note
A token...