sql - 从json中选择变量到具有现有记录的表的空列中
问题描述
我有一个包含多个列的表,其中一个是 jsonb 对象。我想从其中一个 json 变量创建一个新列,但更新命令附加到表的底部。
我有:
time info id some_json
12 bla {"id":"123","more_info":"bla bla"}
13 bla {"id":"124","more_info":"bla bla"}
我需要:
time info id some_json
12 bla 123 {"id":"123","more_info":"bla bla"}
13 bla 124 {"id":"124","more_info":"bla bla"}
我得到:
time info id some_json
12 bla {"id":"123","more_info":"bla bla"}
13 bla {"id":"124","more_info":"bla bla"}
123
124
当我使用insert_into my_table(id) select some_json ->> 'id' from my_table;
这样做的正确方法是什么?我是一个 SQL 初学者,很多命令听起来很适合这项工作(更新、插入、选择、更改)。
解决方案
我认为您正在寻找一个简单的更新声明
update t set id = (some_json->>'id')::int;
--^ cast it to the datatype of id column
推荐阅读
- swift - 无法从 google Firestore 获取数据,出现 Thread 1: EXC_BAD_INSTRUCTION 错误
- javascript - 使用 JavaScript 函数和复选框的 Google 表格
- python - 使用 Python 请求删除 Kubernetes ConfigMap 键
- java - Java 客户端无法连接到在 localhost 上运行的 Redis Sentinel
- php - PHP for循环中允许的内存大小耗尽
- c++ - C++ - 将静态二维数组传递给函数
- java - 每次在 API 23 上运行此应用程序时都会出错。我是初学者
- python - 自动发现 python 装饰器
- sql-server - 将 XML 数据读入 SQL Server 表
- python - 在python中查找两个数字内的值的数量