2015-11-19 8 views
0

Я использую Postgres 9.4 и у меня есть таблица test_table где определение:postgresql Jsonb? не работает

id (primary key) integer, meta_data json, version integer 

Данные Таблица выглядит следующим образом:

1;"{"id":99,"file_name":"test.pdf"}";0 
2;"{"id":101,"nest1":{"nest_name_1":"oxford"},"file_name":"test2.pdf"}";0 

Я хочу, чтобы найти все первичные ключи которые содержат ключевое слово oxford. поэтому ожидаемый результат 2.

Я все еще пытаюсь найти решение, и я пытался что-то вроде:

select * from test_table where meta_data ? 'oxford' 

дает мне:

Error: operator does not exist: json ? unknown

Вот что делает меня путать. наверняка postgresql 9.4 имеет? право оператора? что происходит?

может кто-то мне помочь.

Заранее спасибо

ответ

0

Оператор ? относится к jsonb, так что ваш запрос должен быть:

Обратите внимание, что запрос не найти любую строку, так как значение 'oxford' в вложенном объекте.

+0

Вы правы, я только что заметил его, и я собирался удалить вопрос. но поскольку вы уже ответили на него, я соглашусь ответить, когда мне позволено (примерно через три минуты). – Ikthiander

Смежные вопросы