Maison >base de données >tutoriel mysql >Comment convertir correctement JSONB en Float dans PostgreSQL ?
Conversion JSONB en flottant dans PostgreSQL 9.4
Un utilisateur de PostgreSQL a tenté de convertir une colonne jsonb en flottant à l'aide de la requête suivante :
SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;
Cependant, ils ont rencontré le error :
ERROR: operator does not exist: jsonb + numeric
Pour résoudre ce problème, l'utilisateur a tenté un casting explicite à l'aide de l'opérateur ::float, ce qui a généré l'erreur :
ERROR: operator does not exist: jsonb + double precesion
Pour convertir les valeurs jsonb en flottants, il est Il est essentiel de suivre la bonne priorité des opérateurs. Le -> L'opérateur renvoie une valeur JSON, tandis que l'opérateur ->> L'opérateur renvoie une valeur de texte. Pour réussir à lancer un flottant, vous devez utiliser l'option ->> opérateur.
La syntaxe de requête correcte est :
SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat FROM updates LIMIT 5;
En utilisant l'opérateur ->> opérateur, la valeur jsonb est d'abord convertie en texte, qui peut ensuite être converti en float à l'aide de l'opérateur ::float.
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!