Maison >base de données >tutoriel mysql >Comment convertir des données PostgreSQL JSONB en flotteurs pour des opérations mathématiques ?

Comment convertir des données PostgreSQL JSONB en flotteurs pour des opérations mathématiques ?

DDD
DDDoriginal
2024-12-29 14:48:11854parcourir

How to Cast PostgreSQL JSONB Data to Float for Mathematical Operations?

Conversion de données JSONB PostgreSQL en flottant

Dans PostgreSQL, tenter d'effectuer des opérations mathématiques avec des données JSONB entraîne souvent des erreurs telles que "l'opérateur n'existe pas" lors de la conversion en float n'est pas explicitement spécifié.

Pour résoudre ce problème, considérez les différentes récupérations de valeurs JSON opérateurs :

  • -> (Opérateur de flèche) : renvoie les valeurs JSON sous forme de JSON.
  • ->> (Double Opérateur de flèche) : renvoie les valeurs de texte.

Étant donné que les flottants sont stockés sous forme de texte dans JSONB, il est nécessaire d'utiliser le ->> (Double Flèche) pour extraire la représentation sous forme de chaîne du float avant d'essayer de le transformer en float.

Par exemple, considérons la requête suivante :

SELECT (json_data->'position'->'lat')::float + 1.0 AS lat
FROM updates
LIMIT 5

Ici, l'opérateur -> L'opérateur (Flèche) est initialement utilisé pour extraire la « position » de l'objet JSON. Le ->> L'opérateur (Double Flèche) est ensuite utilisé pour récupérer la valeur de chaîne de « lat ». Enfin, l'opérateur de conversion ::float est utilisé pour convertir la chaîne en flottant.

En utilisant l'opérateur de récupération de valeur JSON approprié, vous pouvez convertir avec succès les valeurs JSONB en flottants dans vos requêtes PostgreSQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn