小编tes*_*est的帖子

从列获取JSON值

我有一堆两列日志,由制表符分隔.第二列是有效的JSON:

2019-02-28T19:43:48.585Z        {"id": 1234, "catId": 42, "img": "other.jpg"}
2019-02-28T19:44:48.585Z        {"id": 4321, "catId": 999, "img": "my.jpg"}
2019-02-28T19:44:48.585Z        {"id": 1234, "catId": 42, "img": "new.jpg"}
2019-02-28T19:46:48.585Z        {"id": 1234, "catId": 765, "img": "cat.jpg"}
Run Code Online (Sandbox Code Playgroud)

我的目标是保留timestamp列,并打印catId属性:

2019-02-28T19:43:48.585Z        42
2019-02-28T19:44:48.585Z        999
2019-02-28T19:44:48.585Z        42
2019-02-28T19:46:48.585Z        765
Run Code Online (Sandbox Code Playgroud)

我尝试迄今已插jqawk,但我与挣扎的system命令.

awk -F '\t' '{printf "\n %s \t %s \n", $1, system("jq .catId <<< " $2)}' file
Run Code Online (Sandbox Code Playgroud)

我们非常感谢任何正确方向的帮助.

unix bash awk json jq

3
推荐指数
1
解决办法
114
查看次数

重复密钥更新增值

我有一个带有架构的表:

storeId varchar(255),
ttl int,
date varchar(255),
bytes bigint(255),
UNIQUE KEY storeId_date_index (storeId, date)
Run Code Online (Sandbox Code Playgroud)

我想插入一行(如果不存在),否则更新它。

对于我点击的每个重复键,我想将旧值与新值相加。这个命令怎么可能呢ON DUPLICATE KEY UPDATE

这是我到目前为止所拥有的:

insert into table (storeId, date, ttl, bytes) 
values 
('477866', '2019-02-05', 54543543, 100),
('6301', '2019-02-05', 54543543, 999999),
('12345', '2019-02-05', 54543543, 999999)
ON DUPLICATE KEY UPDATE
bytes = oldval + newval # sum old value with new value where storeId and date match in the values
Run Code Online (Sandbox Code Playgroud)

mysql sql syntax upsert sql-insert

2
推荐指数
1
解决办法
2299
查看次数

标签 统计

awk ×1

bash ×1

jq ×1

json ×1

mysql ×1

sql ×1

sql-insert ×1

syntax ×1

unix ×1

upsert ×1