【发布时间】:2020-03-04 20:43:11
【问题描述】:
我有一个名为 user 的表,其中包含列数据。数据包含很长的字符串(它是一个嵌套在数据列中的 JSON 作为字符串)。在 fontSize 值是字符串的所有情况下,我想将 fontSize 键的所有值更改为 int,但必须保留 int 值。 所以基本上这就是我想做的:
{
"id": 1,
"name": "New Window",
"resources": {
"widgets": [
{
"id": 1,
"color": "#ffffff",
"fontSize": "5",
"width": 150
},
{
"id": 2,
"color": "#aaaaaa",
"fontSize": "10",
"width": 200
}
]
}
}
改为:
{
"id": 1,
"name": "New Window",
"resources": {
"widgets": [
{
"id": 1,
"color": "#ffffff",
"fontSize": 5,
"width": 150
},
{
"id": 2,
"color": "#aaaaaa",
"fontSize": 10,
"width": 200
}
]
}
}
在 fontSize 值是字符串的所有情况下(在某些情况下它已经是整数)。 fontsize的值不同,必须保留。
我知道逻辑。我必须在表用户中找到所有情况,其中数据列如'%“fontSize”:“%',然后在“fontSize”之后删除第一个“:模式和第一个”在数字之后。我该怎么做?在SQL中是否可能? 感谢您的帮助!
【问题讨论】:
-
您使用的是哪个 dbms?
-
我正在使用 PostgreSQL
-
@a_horse_with_no_name 好吧,我知道。问题是 Safari 浏览器将输入的值转换为字符串。我已经修好了,但我的模型还是坏了
标签: sql json regex postgresql replace