Подтвердить что ты не робот

Как преобразовать postgres json в integer

Я могу использовать to_json(1) для преобразования int в json, но как преобразовать json в int? Это может быть слишком медленно:

to_json(1)::text::int

Кроме того, json завернут из двоичного блока (bson) или простой оберткой текста?

4b9b3361

Ответ 1

Что работает для меня (используя posgtgresql 5.6),

SELECT (tablename.jsoncolumnname->>'jsonfiledname')::int FROM tablename;

как

SELECT (users.data->>'failed_login_attempts_count')::int FROM users;

Предполагая, что таблица users имеет столбец json с именем data, который выглядит примерно так:

{"failed_login_attempts_count":"2","comment":"VIP"}

Ответ 2

to_json (1):: text:: int возможно слишком медленно

Но тогда это единственный способ.

Вторая часть вашего вопроса неясна.

Ответ 3

Поддержка PostgreSQL 9.3 JSON - это просто проверенный текст json.

В 9.4 и новее вы можете использовать jsonb.

"может быть слишком медленным" не делает тонны смысла. Что заставляет вас думать слишком медленно? Вы тестировали и оценивали? Если он "слишком медленный", какая скорость не будет слишком медленной, то есть что вы ожидаете?