2017-05-19 3 views
0

wie kann ich schreiben query:Postgres, jsonb

where data @> '[{"id": "1884595530"}]' 

in Java, unter der Annahme, dass 1884595530 ein Abfrageparameter ist. Ich habe versucht,

String sql = "where data @> '[{\"id\": :id}]'" 

aber es endet mit Fehler:

enter code here erwartet "" oder "]", gefunden ":".

+0

Meinen Sie 'WHERE ID = 1884595530'? –

Antwort

0

Ich glaube nicht, dass Sie Ihre JSON-String eine Liste/Array machen müssen. Ist das Datenfeld jsonb? Wenn ja, sollten Sie in der Lage sein, Folgendes zu tun:

where data @> '{"id":"1884595530"}'::jsonb 

Wenn id eine ganze Zahl anstelle von String ist, müssen Sie möglicherweise, dies zu tun ein:

where data @> '{"id":1884595530}'::jsonb 

http://dbfiddle.uk/?rdbms=postgres_9.6&fiddle=123b96326f463fbdc2e670a5146e2c0d

Verwandte Themen