次のようなjson列フィールドがあるとしましょう:
{phone: 5555555555, address: "55 awesome street", hair_color: "green"}
私がやりたいことは、json キー phone が存在するすべてのエントリを更新することであり、結果は number 型で文字列になります。
私が持っているものは次のとおりです。
SELECT *
FROM parent_object
WHERE (fields->'phone') IS NOT NULL;
残念ながら、これはまだ値を返しますphone:null
。null
JSONは SQL と同等ではないと推測していますNULL
。
どうすればよいですか 1) JSON の null
AND (fields->'phone') <> null
が生成されることを除外するにはどうすればよいですか
LINE 4: ...phone') IS NOT NULL AND (fields->'phone') <> 'null';
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
2)そのキー、この擬似コードの値のタイプを確認します(type_of (fields->'phone') == Integer)
が、PGSQL が動作しています。
3)これを変更して列を更新します
UPDATE parent_object
SET fields.phone = to_char(fields.phone)
WHERE query defined above