获取包含特定单词

时间:2017-10-02 14:37:48

标签: json node.js postgresql

我试图从我的数据库中选择一个密钥并在json列中设置其值,其中postgres键正在以" _alert"完成。

所以在我的bd中我有一个名为data的列作为json,我只想让键完成" _alert"喜欢" ram_alert"," temperature_alert"," disk_alert"," cpu_alert"。

所以我需要获取密钥和值以与我在后端应用程序中的数据进行比较,以验证我是否需要更新值或不要。

怎么做?

我得到所有键select json_object_keys(data) from devices,但如何获得键/值对..有没有办法使用"喜欢"在这里表达?

1 个答案:

答案 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”的内容,以确保安全。