我注意到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修改,而不是创建一个新的属性,但我不知道性能的影响是什么。
发布于 2016-06-23 03:03:52
Neo4j执行按字典顺序排序的字符串,这就是您所看到的。这是文档化的here。要实现不区分大小写的排序,需要自己实现(比如建议在查询期间或存储属性值时转换大小写)。
https://stackoverflow.com/questions/37975847
复制相似问题