我在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