Cassandra CQL3 order by语句首先对大写字符串进行排序
我发现我的CQL3 order by语句返回了奇怪的结果,其中任何以大写字母开头的字符串都是先排序的,然后是小写字符串 下面是一个示例表:Cassandra CQL3 order by语句首先对大写字符串进行排序,cassandra,cql3,Cassandra,Cql3,我发现我的CQL3 order by语句返回了奇怪的结果,其中任何以大写字母开头的字符串都是先排序的,然后是小写字符串 下面是一个示例表: CREATE TABLE tester (rowkey text, colname text, colvalue text, primary key (rowkey, colname)) WITH COMPACT STORAGE; 如果我用一些测试数据填充它并运行以下查询,我得到的就是: 查询: SELECT * FROM tester WHERE r
CREATE TABLE tester
(rowkey text, colname text, colvalue text, primary key (rowkey, colname))
WITH COMPACT STORAGE;
如果我用一些测试数据填充它并运行以下查询,我得到的就是:
查询:
SELECT * FROM tester WHERE rowkey = 'test' ORDER BY colname ASC
结果:
rowkey | colname | colvalue
-------+---------+---------
test | ABC | blah
test | Abc | blah
test | BBC | blah
test | abc | blah
test | bbC | blah
test | bbc | blah
我看不出人们会怎么想。有人知道它为什么会这样排序,以及如何实现更合理的顺序吗?您的列是按字典顺序排序的,其中大写字符优先于小写字符 您的列按字典顺序排序,其中大写字符优先于小写字符 那么,有没有一种方法可以对列ABC、ABC、ABC、BBC、BBC进行排序呢?也许我遗漏了一些东西,但我的列似乎更像是按二进制表示排序顺序排序的,而不是按字典排序的。记住并非每个人都使用相同的字符或具有相同的顺序是很有帮助的,这有助于解释为什么它可能没有明显的意义。创建不区分大小写的排序是可能的,但到目前为止还没有吸引多少开发人员的兴趣。那么,有没有一种方法可以对列ABC、ABC、ABC、BBC、BBC进行排序呢?也许我遗漏了一些东西,但我的列似乎更像是按二进制表示排序顺序排序的,而不是按字典排序的。记住并非每个人都使用相同的字符或具有相同的顺序是很有帮助的,这有助于解释为什么它可能没有明显的意义。创建不区分大小写的排序是可能的,但到目前为止还没有吸引多少开发人员的兴趣。