我使用查询从cassandra数据库中选择数据。它工作得很好,但是如何获得数据的顺序与我在query中给出的相同?
我创建了如下表:
id | n | p | q
----+---+---+------
5 | 1 | 2 | 4
10 | 2 | 4 | 3
11 | 1 | 2 | null
我正在尝试使用
SELECT *
FROM malleshdmy
WHERE id IN ( 11,10,5)
但是,它产生的数据和存储的数据一样。
id | n | p | q
----+---+---+------
5 | 1 | 2 | 4
10 | 2 | 4 | 3
11 | 1 | 2 | null
请在这个问题上帮助我。
我要11,10和5的数据
2条答案
按热度按时间hmtdttj41#
如果
id
如果是分区键,那么就不可能了—数据只在集群列中排序,不同分区键的数据可以按任意顺序返回(但在该分区中排序)。您需要自己对数据进行排序。
58wvjzkj2#
由于id是您的分区键,您的数据实际上是按id的标记排序的,而不是按值本身排序的:
因此,您无法控制分区键的排序方式。
为了按id对数据进行排序,需要将id设置为集群列而不是分区键。但是,您的数据仍然需要一个分区密钥,并且总是按令牌排序。
如果您决定使id成为一个集群列,那么您需要在orderby语句中指定降序
此链接对于讨论cassandra中的订购方式非常有帮助:https://www.datastax.com/dev/blog/we-shall-have-order