属性不按字母顺序排序

时间:2016-06-22 18:35:59

标签: neo4j cypher

我注意到ORDER BY子句按照ASCII顺序排序文本,而不是按字母顺序排序,例如,MySQL就是这样。

换句话说,这就是Neo4J如何订购物业:

Apple  
Carrot  
banana  

MySQL会像这样订购它们:

Apple  
banana  
Carrot  

让Neo4J按字母顺序排序的最佳方法是什么?一种方法是使用像这样的上部(或下部):

MATCH (e) RETURN e.name ORDER BY upper(e.name) ASC;

另一个想法是创建一个新属性nameSort,它与name属性相同,但是在大写(或更低)的情况下。

还有其他方法吗?我更喜欢做一些简单的事情,比如上面的Cypher修改,而不是创建一个新的属性,但我不知道性能的含义是什么。

1 个答案:

答案 0 :(得分:1)

Neo4j执行词典字符串排序,这就是你所看到的。记录在案here。要实现不区分大小写的排序,您需要自己实现(例如,在查询期间或存储属性值时转换大小写的建议)。