Maison > base de données > tutoriel mysql > Comment effectuer correctement des opérations arithmétiques avec les types jsonb et Float de PostgreSQL ?

Comment effectuer correctement des opérations arithmétiques avec les types jsonb et Float de PostgreSQL ?

Barbara Streisand
Libérer: 2024-12-31 07:21:10
original
531 Les gens l'ont consulté

How to Correctly Perform Arithmetic Operations with PostgreSQL's jsonb and Float Types?

Résolution du problème de conversion jsonb en float de PostgreSQL

Lorsqu'ils tentent d'effectuer des opérations arithmétiques impliquant le type jsonb de PostgreSQL et un float, les utilisateurs peuvent rencontrer des erreurs dues pour une incompatibilité de type. En particulier, la requête suivante :

SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;
Copier après la connexion

renverra l'erreur "l'opérateur n'existe pas : jsonb numérique". Même le casting explicite utilisant la syntaxe ::float entraîne l'erreur « l'opérateur n'existe pas : jsonb double précision. »

Pour résoudre ce problème, les utilisateurs peuvent profiter de la syntaxe de l'opérateur JSON de PostgreSQL pour extraire les valeurs requises telles que texte au lieu de JSON. Le ->> L'opérateur, qui renvoie du texte, peut être utilisé comme suit :

SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat
FROM updates
LIMIT 5
Copier après la connexion

En utilisant l'opérateur ->> opérateur pour extraire la valeur de latitude sous forme de texte, les utilisateurs peuvent ensuite la convertir en flotteur et effectuer l'opération arithmétique souhaitée sans aucune erreur. Cette technique permet une gestion efficace des types de données jsonb dans 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal