Ich fand seltsames Verhalten der SQL-Abfrage in OrientDB Studio (auch im REST-Protokoll wiederholt).Orientdb Zitat in SQL-Abfrage
Mein Server-Version ist 2.2.5
Daten in meiner Klasse:
select * from name
Ergebnis:
{
"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)"
}
Wo Eigenschaften Name und Vorname sind Textfelder.
erstelle ich einige SQL-Abfragen in Studio:
select * from name WHERE surname='O\'brien'
Ergebnis:
{
"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)"
}
funktioniert gut.
Next:
select * from name WHERE NOT (surname='O\'brien')
Ergebnis:
{
"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)"
}
In diesem Fall habe ich unerwartet drittes Ergebnis erhalten.
Next:
select * from name WHERE (NOT (surname='bar surname'))
Ergebnis:
{
"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)"
}
sieht gut aus.
Next:
select * from name WHERE (NOT (surname='O\'brien'))
Ergebnis:
java.lang.NullPointerException
Next:
select * from name WHERE (surname='O\'brien')
Ergebnis:
Empty result
Meine Frage - es ist ein Fehler, oder ich mache etwas falsch?
Diese Abfragen sind Teile von Abfrage-Generator, also muss ich verstehen, wie in OrientDB-Klammern funktioniert.
Danke.
Können Sie versuchen, es in der neuesten Version? Wenn es weiterhin besteht, können Sie ein Problem auf github öffnen. –
Ja, ich reproduziert es in der 2.2.12-SNAPSHOT, Ausgabe auf GitHub - https://github.com/orientechnologies/orientdb/issues/6786 – Montekidlo