MYSQL CONVERT、JSON_EXTRACT函数的使用总结
一.CONVERT、CONCAT、COUNT函数联合查询
CONVERT()函数用于将值从一种数据类型转换为表达式中指定的另一种数据类型。 MySQL还允许它将指定的值从一个字符集转换为另一个字符集。 CONCAT()函数需要一个或多个字符串参数,并将他们连接成一个字符串。CONCAT() 函数需要至少一个参数,否则会引起报错。 COUNT(1):统计不为NULL 的记录。 COUNT(*):统计所有的记录(包括NULL)。 COUNT(字段):统计该"字段"不为NULL 的记录。 COUNT(DISTINCT 字段):统计该"字段"去重且不为NULL 的记录。 1.如果这个字段是定义为not null的话,一行行地从记录里面读出这个字段,判断不能为null,按行累加。 2.如果这个字段定义允许为null的话,判断到有可能是null,还要把值取出来在判断一下,不是null才累加。
SELECT f_subcontract_unit_name, CONVERT ( concat( '好: ', count( IF ( f_evaluation_result = '好', 1, NULL ) ), '次', ',差: ', count( IF ( f_evaluation_result = '差', 1, NULL ) ), '次' ) USING utf8 ) AS evaluationResult FROM f_score_result GROUP BY f_subcontract_unit_id
这里推荐一篇大佬的博客关于:(295条消息) SQL中CONVERT()函数用法详解_啊猿的博客-CSDN博客
二.JSON_EXTRACT函数
获取JSON对象中某个key对应的value值
json_extract函数中,第一个参数content表示json数据,第二个参数为json路径,其中$表示该json数据本身,$.name就表示获取json中key为name的value值
1.元数据展示:
2.查询SQL片段
SELECT REPLACE( a.scoreItemId, '"', '' ) AS scoreItemId, REPLACE ( a.scoreItemName, '"', '' ) AS scoreItemName, REPLACE ( a.score, '"', '' ) AS score FROM ( SELECT JSON_EXTRACT ( score_item_json, '$[0].scoreItemId' ) AS scoreItemId, JSON_EXTRACT ( score_item_json, '$[0].scoreItemName' ) AS scoreItemName, JSON_EXTRACT ( score_item_json, '$[0].score' ) AS score FROM t_score WHERE score_item_json IS NOT NULL ) a;
3.查询结果片段
古今成大事者,不唯有超世之才,必有坚韧不拔之志!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)