我有经/纬度值的列,其格式为:
{ "lat": 35.910067092299997, "lon": -79.074502748100002 }
我认为这是JSON格式,因此我尝试使用一些发现的示例,包括这种类型的运算符->> @> ...但无济于事,查询仍然无法执行。
我做错了什么? 我收到的错误示例:
ERROR: operator does not exist: character varying @> unknown
答案 0 :(得分:0)
您的错误告诉您,方程式的左侧是“字符变化”(具有固定长度的文本数据类型),因此您不能在其上使用json运算符。 首先,您必须将其转换为json或jsonb类型,然后一切正常。
select '{ "lat": 35.910067092299997, "lon": -79.074502748100002 }'::json->'lat'