我试图从我的数据库中选择一个密钥并在json列中设置其值,其中postgres键正在以" _alert"完成。
所以在我的bd中我有一个名为data的列作为json,我只想让键完成" _alert"喜欢" ram_alert"," temperature_alert"," disk_alert"," cpu_alert"。
所以我需要获取密钥和值以与我在后端应用程序中的数据进行比较,以验证我是否需要更新值或不要。
怎么做?
我得到所有键select json_object_keys(data) from devices
,但如何获得键/值对..有没有办法使用"喜欢"在这里表达?
答案 0 :(得分:0)
首先请注意,只有在“设备”表中有一个元组时,您当前的查询才有效。尝试插入另一行,你会得到:
ERROR: cannot call json_object_keys on an array
如果您确定自己只会从此表中获得一个结果,那么以下查询应该可以为您提供所需内容:
SELECT key,value FROM devices,json_each(devices.data) where key ~ '_alert$';
我仍然会在你的查询中抛出类似“LIMIT 1”的内容,以确保安全。