You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中如何删除hstore字段多余键值对仅保留指定键值对

PostgreSQL hstore 仅保留指定键值对方案

hstore扩展原生支持键值子集提取,单条SQL就能完成需求,不需要复杂逻辑。

使用hstore自带的slice函数即可实现:传入hstore字段和要保留的键组成的数组,会自动返回只包含目标键的新hstore,其余键值对会全部被剔除。也可以用hstore(name, ARRAY['name:vi'])的写法,和slice函数效果完全一致。


仅查询时过滤(不修改原表数据)

如果只是查询结果需要保留指定键,直接查询即可:

SELECT slice(name, ARRAY['name:vi']) AS filtered_name
FROM 你的表名;

要保留多个键就往数组里追加键名,比如同时保留越南语、中文键:ARRAY['name:vi', 'name:zh']

永久修改表内存储数据

如果要把表里存储的hstore值直接改成仅保留目标键,用UPDATE语句:

UPDATE 你的表名
SET name = slice(name, ARRAY['name:vi']);

操作前校验(避免误改)

执行UPDATE前建议先跑校验语句确认结果正确:

SELECT
  name AS original_data,
  slice(name, ARRAY['name:vi']) AS filtered_data
FROM 你的表名
-- 可追加WHERE条件限定校验范围
LIMIT 10;

确认返回的filtered_data只有你需要的"name:vi"=>"TT. Mường Tè"键值对,再执行更新操作即可。

内容的提问来源于stack exchange,提问作者Nguyễn Hoài Nam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 11:30:45