【问题标题】:Postgres query to update column valuePostgres 查询更新列值
【发布时间】:2021-02-25 11:27:15
【问题描述】:

DB 中的列值类似于{1,2,4} & 我要编辑的值当前为空。

我可以执行哪些 postgres 以使其与其他值相似。

我已经运行了一个查询,但它给出了不想要的结果:Result-> {[0:0]={1}} 我执行的查询

update table_name set column_name[0]=1 where unique_val = 1;

执行查询后,我希望 row2-> 值的结构与第一行相似。

任何帮助将不胜感激。

【问题讨论】:

  • 对我来说,完全不清楚你想要实现什么。请向我们展示一些示例数据和预期输出。
  • 我已经添加了更多的描述,看看是否足够
  • 更新后的预期输出是什么?
  • {1,2,3,4} 或与第 1 行相同
  • {1,2,3,4} 与第 1 行不同。无论如何你能说为什么这还不够:UPDATE table_name SET column_name = '{1,2,3,4}' WHERE id = 2

标签: postgresql


【解决方案1】:

demo:db<>fiddle

{1,2,3,4}简单更新:

UPDATE table_name
SET val = '{1,2,3,4}'
WHERE id = 2

使用第一条记录的值进行更新:

UPDATE table_name t
SET val = s.val
FROM (
    SELECT val FROM table_name WHERE id = 1
) s
WHERE t.id = 2

另外

请不要在您的表中存储数组。这使得一切都变得更加复杂(搜索和更新特定的数组元素)并且性能更低(数组元素上的连接需要一个非嵌套操作,索引并不简单,......)。请规范您的表格设计。这意味着应该有一个包含table_name_idarray_element_id 列的关系表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 2020-12-21
    • 2012-07-08
    相关资源
    最近更新 更多