Operator existiert nicht: json = json

10

wenn ich versuche, einen Datensatz aus einer Tabelle auszuwählen

%Vor%

Der SQL-Code hat einen Fehler ausgelöst

%Vor%

Habe ich etwas vermisst oder kann ich etwas über diesen Fehler lernen?

    
Fudun 29.09.2015, 11:49
quelle

1 Antwort

16

Sie können JSON-Werte nicht vergleichen. Sie können stattdessen Textwerte vergleichen:

%Vor%

Beachten Sie jedoch, dass Werte vom Typ json als Text in einem Format gespeichert werden, in dem sie angegeben sind. Das Ergebnis des Vergleichs hängt also davon ab, ob Sie das gleiche Format konsistent anwenden:

%Vor%

In Postgres 9.4+ können Sie dieses Problem mit dem Typ jsonb lösen, der in einem zerlegten Binärformat gespeichert ist. Werte dieses Typs können verglichen werden:

%Vor%

Diese Abfrage ist also viel zuverlässiger:

%Vor%

Lesen Sie mehr über JSON-Typen .

    
klin 29.09.2015, 11:56
quelle