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;
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
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!