我有一个Postgres表,其中包含JSON类型的列,其中包含一堆JSON对象.我想查询表记录并按存储在JSON字段中的值对结果进行排序.我正在运行查询,但它们没有正确排序.我没有找到关于专门订购JSON字段类型的大量文档,所以希望有人遇到过这种情况.
data: {name: "stuff", value: "third option"}
data: {name: "stuff", value: "awesome stuff"}
data: {name: "stuff", value: "way cooler stuff"}
Run Code Online (Sandbox Code Playgroud)
以下SQL执行但结果返回无序
select * from table ORDER BY data->>'value asc'
Run Code Online (Sandbox Code Playgroud)
我正在使用rails,但尝试直接运行SQL同样的结果
Cra*_*ger 40
你asc输入了fieldname.value asc在json中没有命名的键,因此data ->> 'value asc'将始终返回NULL.
你真的想要:
select * from table ORDER BY data->>'value' ASC
Run Code Online (Sandbox Code Playgroud)
匹配json,甚至可能:
select *
from table
WHERE data ->> 'name' = 'stuff'
ORDER BY data->>'value' ASC
Run Code Online (Sandbox Code Playgroud)
aco*_*hen 14
使用->而不是->>(->>获取JSON对象字段作为文本):
select * from my_table ORDER BY data->'some_number' asc;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20783 次 |
| 最近记录: |