2

我正在使用 POSTGRESQL 数据库,我需要按 JSON 类型的列排序。这是我得到的错误:

ERROR: could not identify an ordering operator for type json
LINE 1: SELECT * FROM "field" "t" ORDER BY "t"."brand" LIMIT 10

是否可以按 JSON 数据类型排序?有什么建议可以解决吗?

表字段:

  • field_id INT
  • 名称文本
  • 输入 INT
  • 品牌 JSON

这是我的代码:

$sql = 'SELECT * FROM "field" "t" ORDER BY "t"."brand"';      
$data = Yii::app()->db->createCommand($sql);
$result = $data->queryAll();
4

1 回答 1

2

为此,您需要 json 访问器。从 PG 9.2 开始,没有一个是内置的:

http://www.postgresql.org/docs/9.2/static/functions-json.html

PG 9.3 将包含您需要的功能:

http://www.postgresql.org/docs/9.3/static/functions-json.html

同时,您可以在例如 plperl 中编写访问器方法,或安装扩展:

https://github.com/theirix/json_accessors

于 2013-05-17T14:08:38.127 回答