ordre par type de données JSON postgres
J'ai une Postgres table qui a une colonne de type JSON qui a un tas d'objets JSON. Je veux interroger les enregistrements de la table et ordonner les résultats par une valeur stockée dans le champ JSON. Je reçois les requêtes à exécuter, mais ils n'ont pas les trier correctement. Je ne suis pas à trouver une tonne de documentation sur la commande de champ JSON types spécifiquement, donc en espérant que quelqu'un a rencontré ce.
data: {name: "stuff", value: "third option"}
data: {name: "stuff", value: "awesome stuff"}
data: {name: "stuff", value: "way cooler stuff"}
Le SQL suivant s'exécute mais les résultats de retour non ordonnée
select * from table ORDER BY data->>'value asc'
Je suis à l'aide de rails, mais ils ont essayé de l'exécution de SQL directement w/même résultat
source d'informationauteur user1767105
Vous devez vous connecter pour publier un commentaire.
Vous mettre
asc
dans le nom de champ. Il n'y a pas de clé nomméevalue asc
dans le json, doncdata ->> 'value asc'
retournera toujoursNULL
.Que vous voulez vraiment:
pour correspondre au format json, peut-être même:
Essayer:
ORDER BY cast(data->>'value' as integer) ASC
Utilisation
->
au lieu de->>
(->>
obtient un objet JSON champ de texte):