我对cassandra数据库中的数据排序有问题。这是我的桌子结构:
CREATE TABLE posts (
id uuid,
created_at timestamp,
comment_enabled boolean,
content text,
enabled boolean,
meta map<text, text>,
post_type tinyint,
summary text,
title text,
updated_at timestamp,
url text,
user_id uuid,
PRIMARY KEY (id, created_at)
) WITH CLUSTERING ORDER BY (created_at DESC)
当我运行这个查询时,我得到了以下消息:
查询:
select * from posts order by created_at desc;
信息:
ORDER BY is only supported when the partition key is restricted by an EQ or an IN.
或者此查询返回没有排序的数据:
select * from posts
错误信息非常清楚:如果不使用WHERE
子句限制查询,就不能ORDER BY
。这是故意的。
在没有WHERE
子句的情况下运行时获得的数据实际上是有序的,不是通过群集键,而是通过将令牌函数应用于分区键。您可以通过发出以下命令来验证订单:
SELECT token(id), id, created_at, user_id FROM posts;
其中,标记
函数参数与分区键完全匹配。
我建议你读这个和这个,了解你能/不能做什么。
有几件事你需要理解,在你的情况下,分区键是“id”,聚类键是“created_at”。
这本质上意味着,任何一行都将存储在一个基于“id”散列的分区中(取决于默认的散列方案,它是3),现在在该分区内,数据将根据您的聚类键进行排序,在您的情况下是“created_at”。
因此,如果默认情况下从该表中查询一些数据,那么结果将根据您的聚类顺序进行排序,默认排序顺序是您在创建表时指定的排序顺序。然而,那里有一个陷阱。
如果您没有在WHERE子句中指定分区键,那么结果集的实际顺序将取决于分区键的散列值(在您的案例id中)。
因此,为了按照特定的顺序获得帖子。必须像这样指定分区键
从帖子中选择*,其中id=1订单由desc创建;
注:
如果您想要的排序方向(ASCend/DECOend)已经与表定义中的CLUSTERING ORDER匹配,则不必在查询中指定ORDER BY子句。
所以基本上上面的查询是一样的
从id=1的帖子中选择*
你可以在这里了解更多http://www.datastax.com/dev/blog/we-shall-have-order
问题内容: 我想按日期订购。 例如 我已经尝试过: 伯,这是行不通的。 我得到这个代替: 你能帮我吗? 问题答案: 如果要按日期排序, 请将其存储为日期而不是字符串。 除非您的日期字符串的格式为,否则它不会按您希望的顺序排序。 数据库可以按原样进行足够的工作,而无需人们加倍努力,因此,您应该尽可能地避免我喜欢的 SQL体操。 将其存储为日期,然后(如果需要)使用日期函数以形式获取它。 这样会比您尝
问题内容: 我知道这一定是相对简单的,但是我有一个JSON数据集,我想按日期排序。到目前为止,我无处不在遇到问题。现在,我将日期存储为。如果有帮助,我可以访问jquery,但是我意识到.sort()是本机JS。提前致谢。 问题答案: 假设您有一个javascript对象数组,只需使用自定义排序功能即可: Array 方法使用回调函数对数组进行排序,该回调函数传递给数组中的元素对。 如果返回值为负,
问题内容: 我正在尝试按日期顺序显示文件数组(最后修改)。 我已经完成了遍历数组并将其排序到另一个数组中的购买循环,但是有没有更简单(更有效)的方法来做到这一点? 问题答案: *从PHP 7.2.0开始, *警告 已被弃用。强烈建议不要使用此功能。 为了后代的目的,如果在接受的答案中链接的论坛帖子丢失或不清楚,则所需的相关代码为: 在我的系统上对此进行了测试,并验证了它确实可以根据需要按文件mti
我有一个JTable,它有两列,文件名和日期都被修改了。我为第一列添加了name String,并为第二个dateTime列添加了。 我将dateTime列呈现为字符串。 我还启用了 编辑2 我已经测试并弄明白了。如果使用DefaultTableModel而不重写它的getColumnClass()方法,那么在使用Date或Number列时会遇到麻烦。
问题内容: 我试图使功能超出其书面限制,我需要的不仅仅是当前支持的alpha排序。我需要对结果进行排序,以按修改日期排序。 我尝试了一些在这里找到的解决方案,以及其他来自不同网站的解决方案,但是没有一个适合我,因此我认为在这里发布是合理的。 到目前为止,我尝试过的是: 但是,这似乎对我不起作用,它仅返回3个结果,但应该返回16个结果,因为文件夹中有16张图像。 问题答案:
问题内容: 我尝试按ASC顺序在表上使用Spring-Data-JPA创建应用程序,但它给了我一个错误: 为什么 ? 或者 问题答案: 尝试在“全部”和“订单”之间添加“按”,如下所示: