我在OrientDB Studio中发现了SQL查询的奇怪行为(也在REST协议中重复)。SQL查询中的Orientdb引用
我的服务器版本是2.2.5
数据在我的课:
select * from name
结果:
{
"result": [
{
"@type": "d",
"@rid": "#25:0",
"@version": 1,
"@class": "name",
"surname": "foo surname",
"name": "foo name"
},
{
"@type": "d",
"@rid": "#26:0",
"@version": 1,
"@class": "name",
"surname": "bar surname",
"name": "bar name"
},
{
"@type": "d",
"@rid": "#27:0",
"@version": 1,
"@class": "name",
"surname": "O'brien",
"name": "baz"
}
],
"notification": "Query executed in 0.069 sec. Returned 3 record(s)"
}
,其属性姓氏和名字是文本字段。
我在Studio中创建了一些SQL查询:
select * from name WHERE surname='O\'brien'
结果:
{
"result": [
{
"@type": "d",
"@rid": "#27:0",
"@version": 1,
"@class": "name",
"surname": "O'brien",
"name": "baz"
}
],
"notification": "Query executed in 0.016 sec. Returned 1 record(s)"
}
做工不错。
下一页:
select * from name WHERE NOT (surname='O\'brien')
结果:
{
"result": [
{
"@type": "d",
"@rid": "#25:0",
"@version": 1,
"@class": "name",
"surname": "foo surname",
"name": "foo name"
},
{
"@type": "d",
"@rid": "#26:0",
"@version": 1,
"@class": "name",
"surname": "bar surname",
"name": "bar name"
},
{
"@type": "d",
"@rid": "#27:0",
"@version": 1,
"@class": "name",
"surname": "O'brien",
"name": "baz"
}
],
"notification": "Query executed in 0.015 sec. Returned 3 record(s)"
}
在这种情况下我获得意想不到的第三结果。
下一页:
select * from name WHERE (NOT (surname='bar surname'))
结果:
{
"result": [
{
"@type": "d",
"@rid": "#25:0",
"@version": 1,
"@class": "name",
"surname": "foo surname",
"name": "foo name"
},
{
"@type": "d",
"@rid": "#27:0",
"@version": 1,
"@class": "name",
"surname": "O'brien",
"name": "baz"
}
],
"notification": "Query executed in 0.017 sec. Returned 2 record(s)"
}
看起来不错。
下一页:
select * from name WHERE (NOT (surname='O\'brien'))
结果:
java.lang.NullPointerException
下一页:
select * from name WHERE (surname='O\'brien')
结果:
Empty result
我的问题 - 这是错误,或者我做错了什么?
这些查询是查询生成器的一部分,所以我需要了解如何在OrientDB括号中起作用。
感谢。
你可以尝试在最新的版本?如果它仍然存在,你可以在github上打开一个问题。 –
是的,我转载它在2.2.12-SNAPSHOT,在github问题 - https://github.com/orientechnologies/orientdb/issues/6786 – Montekidlo