我正在使用psycopg2(版本2.5.4)来查询PostgreSQL数据库(版本9.2.7)。我查询的一个列是一个json类型,psycopg2被记录为能够处理。但是,我收到以下错误:
psycopg2.ProgrammingError:无法识别类型为json的等号运算符
我没有对相关列执行任何相等操作,只是使用select语句返回它。查询很简单,也很直接:
SELECT DISTINCT me.measure_id, me.choices
FROM measures ME
WHERE TRUE AND me.measure_id IN (3)
ORDER BY me.measure_id;
me.choices是表中唯一的JSON类型列。我进行了广泛的搜索,一无所获,也无法想到前进的方向。任何建议将不胜感激。
答案 0 :(得分:1)
select distinct
要求每个完整行都是不同的。所以当你说select DISTINCT me.measure_id, me.choices
时,你要求postgresql在choices
上执行相等操作,看两行是否相同。
假设measure_id
是measures
的主键,您可以删除distinct
。否则,您可以使用distinct on
仅为measure_id
抓取一行。