mysql 根据json数据字段查询 显示json字段内容
| 名称 | 描述 | 
|---|---|
| -> | 评估路径后从JSON列返回值;等效于JSON_EXTRACT()。 | 
| ->> | (介绍5.7.13) | 
| JSON_APPEND() | (已弃用) 将数据附加到JSON文档 | 
| JSON_ARRAY() | 创建JSON数组 | 
| JSON_ARRAY_APPEND() | 将数据附加到JSON文档 | 
| JSON_ARRAY_INSERT() | 插入JSON数组 | 
| JSON_CONTAINS() | JSON文档是否在路径中包含特定对象 | 
| JSON_CONTAINS_PATH() | JSON文档是否在路径中包含任何数据 | 
| JSON_DEPTH() | JSON文档的最大深度 | 
| JSON_EXTRACT() | 从JSON文档返回数据 | 
| JSON_INSERT() | 将数据插入JSON文档 | 
| JSON_KEYS() | JSON文档中的键数组 | 
| JSON_LENGTH() | JSON文档中的元素数 | 
| JSON_MERGE() | (不建议使用5.7.22) 合并JSON文档,保留重复的键。JSON_MERGE_PRESERVE()的已弃用同义词 | 
| JSON_MERGE_PATCH() | (介绍5.7.22) 合并JSON文档,替换重复键的值 | 
| JSON_MERGE_PRESERVE() | (介绍5.7.22) 合并JSON文档,保留重复的键 | 
| JSON_OBJECT() | 创建JSON对象 | 
| JSON_PRETTY() | (介绍5.7.22) 以易于阅读的格式打印JSON文档 | 
| JSON_QUOTE() | 引用JSON文档 | 
| JSON_REMOVE() | 从JSON文档中删除数据 | 
| JSON_REPLACE() | 替换JSON文档中的值 | 
| JSON_SEARCH() | JSON文档中值的路径 | 
| JSON_SET() | 将数据插入JSON文档 | 
| JSON_STORAGE_SIZE() | (介绍5.7.22) 用于存储JSON文档的二进制表示形式的空间 | 
| JSON_TYPE() | JSON值类型 | 
| JSON_UNQUOTE() | 取消引用JSON值 | 
| JSON_VALID() | JSON值是否有效 | 
MySQL 5.7.22和更高版本支持两个聚合JSON函数 JSON_ARRAYAGG()和 JSON_OBJECTAGG()。
用到的示例
# 插入数据
insert into testTable (jsonField) values ('{"one":1,"two":{"id":2}}');
# 查询数据
//一维
select id, json_extract(jsonField,'$.one') as one from testTable where json_extract(jsonField,'$.one') = 1
//二维
select id, json_extract(jsonField,'$.two.id') as two from testTable where json_extract(jsonField,'$.two.id') = 2
SELECT
	g.title AS "商品名称",
	g.subtitle AS "副标题",
	g.maidian AS "商品卖点",
	g.keywords AS "关键字",
	g.marketprice AS "零售价",
	g.goodssn AS "唯一编码",
	g.weight AS "重量",
CASE
	WHEN json_valid ( g.discounts ) THEN
	json_extract ( g.discounts, '$.default_pay' ) ELSE NULL 
	END AS "普通会员价",
CASE
	WHEN json_valid ( g.discounts ) THEN
	json_extract ( g.discounts, '$.level9_pay' ) ELSE NULL 
	END AS "专营店价",
CASE
	WHEN json_valid ( g.discounts ) THEN
	json_extract ( g.discounts, '$.level8_pay' ) ELSE NULL 
	END AS "VIP会员价",
CASE
	WHEN json_valid ( g.discounts ) THEN
	json_extract ( g.discounts, '$.level7_pay' ) ELSE NULL 
	END AS "股东价"
FROM
	ims_ewei_shop_goods g 
WHERE
	g.pcate = 2 
	AND g.deleted = 0 
AND ( g.discounts <> '' OR g.discounts IS NOT NULL )
更多参考
MySQL 5.7参考手册:https://dev.mysql.com/doc/refman/5.7/en/json-function-reference.html
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号