我有这段代码json_object_keys('{"A": 1, "B": 0, "C": 5}'::json)
,它会返回一组这样的文字:
json_object_keys
----------------
| A |
-----
| B |
-----
| C |
-----
基于此json_object_keys
结果,我想创建一个临时记录集或表来遍历这些,以执行对表列的更新,其中它等于每个键。
那么我该如何创建记录集呢?
答案 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));