如何从一组文本创建一组记录?

时间:2017-09-28 02:53:29

标签: json postgresql recordset

我有这段代码json_object_keys('{"A": 1, "B": 0, "C": 5}'::json),它会返回一组这样的文字:

json_object_keys
----------------
| A |
-----
| B |
-----
| C |
-----

基于此json_object_keys结果,我想创建一个临时记录集或表来遍历这些,以执行对表列的更新,其中它等于每个键。 那么我该如何创建记录集呢?

1 个答案:

答案 0 :(得分:1)

通常您不需要显式创建临时表,因为您可以使用IN (subquery)表达式,例如:

$sql = "INSERT INTO person (Name,Email,Date,Gender,WardType) VALUES ('$Name','$Email','$Date','$Gender','$WardType')";

实际上,服务器在执行查询期间从子查询中创建内存中的临时记录集。

但是,如果确实需要命名的临时表,请使用CREATE TABLE AS:

update my_table
set some_column = some_value
where key_column in (
    select json_object_keys('{"A": 1, "B": 0, "C": 5}'::json));