PostgreSQL 保存json,jsonb类型

PostgresQL 字符串隐式转换JSON脚本:

-- 隐式将varchar转换为json

CREATE OR REPLACE FUNCTION json_in_varchar(varcharRETURNS json AS $$

SELECT json_in($1::cstring);

$$ LANGUAGE SQL IMMUTABLE;

DROP CAST IF EXISTS (varchar as json);

CREATE CAST (varchar AS json) WITH FUNCTION json_in_varchar(varcharAS IMPLICIT;

-- 隐式将varchar转换为jsonb

CREATE OR REPLACE FUNCTION jsonb_in_varchar(varcharRETURNS jsonb AS $$

SELECT jsonb_in($1::cstring);

$$ LANGUAGE SQL IMMUTABLE;

DROP CAST IF EXISTS (varchar as jsonb);

CREATE CAST (varchar AS jsonb) WITH FUNCTION jsonb_in_varchar(varcharAS IMPLICIT;

我的数据库表中的字段类型为text,但是里面存储的是json格式的数据。需要通过上面的函数转换才能达到json效果。

select * from demo where jsonb_in_varchar(content_info)->>'json里面key属性' ='比较的值'

猜你喜欢

转载自blog.csdn.net/Joe192/article/details/89511728