首页 > 数据库 >Clickhouse、Mysql、Presto数据库解析Json数据

Clickhouse、Mysql、Presto数据库解析Json数据

时间:2023-07-14 14:46:59浏览次数:39  
标签:name Presto json Json Mysql tall model 字段

一、Clickhouse解析Json

1、visitParamExtractBool(json,name) → 提取json中的name字段,返回UInt8,0或1

  例:visitParamExtractBool('{"name":true}', 'name') AS bool

2、visitParamExtractInt(json,name) →提取json中的name字段,返回Int型的值

  例:visitParamExtractInt('{"name":123}', 'name') AS int
3、visitParamExtractFloat (json,name)→ 提取json中的name字段,返回Float型的值

  例:visitParamExtractFloat('{"name":0.1}', 'name') AS float
4、visitParamExtractString (json,name)→提取json中的name字段,返回String型的值

  例:visitParamExtractString('{"name":"你好"}', 'name') AS str
5、visitParamExtractRaw (json,name)→ 提取json中的name字段,返回字段的值,包含空格符

  例:visitParamExtractRaw('{"name":"你好"}', 'name') AS raw

6、解析Json数组

SELECT 
    visitParamExtractString(json, 'name') AS name, 
    visitParamExtractInt(json, 'tall') AS tall, 
    visitParamExtractString(json, 'model') AS model, 
    num
FROM 
(
    WITH 
        '[{"name":"天台","tall":100,"model":"M779011"},      {"name":"楼顶","tall":90,"model":"M669011"},      {"name":"秀儿","tall":80,"model":"M559011"}]' AS new, 
        'S123' AS num
    SELECT 
        new, 
        num, 
        JSONExtractArrayRaw(new) AS arr, 
        arrayJoin(arr) AS json
)

┌─name─┬─tall─┬─model───┬─num──┐
│ 天台 │  100 │ M779011 │ S123 │
│ 楼顶 │   90 │ M669011 │ S123 │
│ 秀儿 │   80 │ M559011 │ S123 │
└──────┴──────┴─────────┴──────┘

 

 

 

 

 

 

 

参考博客:https://blog.csdn.net/weixin_39025362/article/details/114291128

 

标签:name,Presto,json,Json,Mysql,tall,model,字段
From: https://www.cnblogs.com/robots2/p/17553658.html

相关文章

  • 谷歌云 | Cloud SQL Enterprise Plus 隆重推出:新版本可提供高达 3 倍的 MySQL 性能
    【本文由CloudAce整理发布。CloudAce是谷歌云全球战略合作伙伴,拥有300多名工程师,也是谷歌最高级别合作伙伴,多次获得GoogleCloud合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证培训服务。】CloudSQL是GoogleCloud的企业级、完全......
  • #SQL常见错误信息表 mysql导入数据出错常见错误
    mysql的出错代码表,根据mysql的头文件mysql/include/mysqld_error.h整理而成。错误之处,请大家指正。1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库......
  • Java优化递归查询Mysql节点树数据
    示例目前有一个功能:任务计划管理,必然存在多级子任务的父子级关系,每个任务还会存在其它数据的关联表。mysql无法一次性递归查出想要的数据结构,想必很多人都会是通过根目录递归查询数据库的方式查出树结构数据。如果节点数较多,就会造成大量请求Mysql查询,效率会很低。那么如......
  • 微擎开发使用workerman时,使用微擎pdo_xxx提示MySQL server has gone away解决办法
    微擎开发使用workerman时,使用微擎pdo_xxx提示MySQLserverhasgoneaway解决办法#找到微擎的DB类ramework\class\db.class.phppublicfunctionreConnect($errorInfo,$params){ if(in_array($errorInfo[1],array(1317,2013))){ $this->pdo=null; $this->conne......
  • Mysql主从复制
    主从复制slave会从master读取binlog来进行数据同步1.复制的基本原理master将改变记录到二进制日志(binarylog),这些记录过程叫做二进制日志事件,binarylogeventsslave将master的binarylogevents拷贝到它的中继日志(relaylog)slave重做中继日志中的事件,将改变应......
  • docker 配置MySQL主从复制
    启动mysql容器(配置主服务器)dockerrun-p3307:3306--namemysql-master\-v/tmp/mysql/mysql-master/log:/var/log/mysql\-v/tmp/mysql/mysql-master/data:/var/lib/mysql\-v/tmp/mysql/mysql-master/conf:/etc/mysql\-eMYSQL_ROOT_PASSWORD=root\-dmysql:5.7......
  • docker 配置MySQL主从复制
    启动mysql容器(配置主服务器)dockerrun-p3307:3306--namemysql-master\-v/tmp/mysql/mysql-master/log:/var/log/mysql\-v/tmp/mysql/mysql-master/data:/var/lib/mysql\-v/tmp/mysql/mysql-master/conf:/etc/mysql\-eMYSQL_ROOT_PASSWORD=root\-dmysql:5.7......
  • docker 配置MySQL主从复制
    启动mysql容器(配置主服务器)dockerrun-p3307:3306--namemysql-master\-v/tmp/mysql/mysql-master/log:/var/log/mysql\-v/tmp/mysql/mysql-master/data:/var/lib/mysql\-v/tmp/mysql/mysql-master/conf:/etc/mysql\-eMYSQL_ROOT_PASSWORD=root\-dmysql:5.7......
  • docker 配置MySQL主从复制
    启动mysql容器(配置主服务器)dockerrun-p3307:3306--namemysql-master\-v/tmp/mysql/mysql-master/log:/var/log/mysql\-v/tmp/mysql/mysql-master/data:/var/lib/mysql\-v/tmp/mysql/mysql-master/conf:/etc/mysql\-eMYSQL_ROOT_PASSWORD=root\-dmysql:5.7......
  • docker 配置MySQL主从复制
    启动mysql容器(配置主服务器)dockerrun-p3307:3306--namemysql-master\-v/tmp/mysql/mysql-master/log:/var/log/mysql\-v/tmp/mysql/mysql-master/data:/var/lib/mysql\-v/tmp/mysql/mysql-master/conf:/etc/mysql\-eMYSQL_ROOT_PASSWORD=root\-dmysql:5.7......