ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql查询json类型字段提取需要类

2022-06-13 15:33:38  阅读:261  来源: 互联网

标签:customer goods like receive JSON 查询 json mysql EXTRACT


如商品订单信息表

查询需要信息并做模糊处理查询:

select
t.goods_order_id orderId,
t.goods_id goodsId,
t.goods_spe_id speId,
t.goods_order_no orderNumber,
t.number orderGoodsNum,
JSON_EXTRACT(t.buy_customer,'$.nickName') as nickName,
JSON_EXTRACT(t.receive_customer,'$.name') as receiver,
JSON_EXTRACT(t.receive_customer,'$.phone') as mobile,
JSON_EXTRACT(t.receive_customer,'$.area[0].text') as addressOne,
JSON_EXTRACT(t.receive_customer,'$.area[1].text') as addressTwo,
JSON_EXTRACT(t.receive_customer,'$.area[2].text') as addressThree,
JSON_EXTRACT(t.receive_customer,'$.area[3].text') as addressFour,
JSON_EXTRACT(t.receive_customer,'$.address') as address,
JSON_EXTRACT(t.goods_shot_cut,'$.goods.name') as goodName,
JSON_EXTRACT(t.goods_shot_cut,'$.spe.speName') as speName,
JSON_EXTRACT(t.logistics_info,'$.logisticsCompany') as logisticName,
JSON_EXTRACT(t.logistics_info,'$.logisticsNo') as expressNumber,
DATE_FORMAT(t.creation_time,'%Y-%m-%d %H:%i:%s') createTime
from merchant_db.t_mall_goods_order t
where t.store_id = #{storeId}
and t.status != 0
and t.status != -10
<if test="orderStatus!=null and orderStatus!='' and orderStatus!= 0 and orderStatus!= -10 ">
and t.status = #{orderStatus}
</if>
<if test="mobile!=null and mobile!=''">
and JSON_EXTRACT(t.receive_customer, '$."phone"') like CONCAT('%',#{mobile},'%')
</if>
<if test="receiver!=null and receiver!=''">
and JSON_EXTRACT(t.receive_customer, '$."name"') like CONCAT('%',#{receiver},'%')
</if>
<if test="userName!=null and userName!=''">
and JSON_EXTRACT(t.buy_customer, '$."userName"') like CONCAT('%',#{userName},'%')
</if>
<if test="nickName!=null and nickName!=''">
and JSON_EXTRACT(t.buy_customer, '$."nickName"') like CONCAT('%',#{nickName},'%')
</if>
<if test="commodityName!=null and commodityName!=''">
and JSON_EXTRACT(t.goods_shot_cut, '$.goods."name"') like CONCAT('%',#{commodityName},'%')
</if>
<if test="orderNumber!=null and orderNumber!=''">
and t.goods_order_no like CONCAT('%',#{orderNumber},'%')
</if>
<if test=" startTime!=null and startTime!= ''">
and t.creation_time >= #{startTime}
</if>
<if test=" endTime != null and endTime != ''">
and DATE_ADD(str_to_date(#{endTime}, '%Y-%m-%d'),INTERVAL 1 DAY) > t.creation_time
</if>
order by t.creation_time desc


mysql 取json字符串字段下的某个键的值

要求:mysql版本5.7及以上

由于json的键值是带双引号。所以需要去掉双引号。1.使用replace()做替换

select 
    replace(JSON_EXTRACT(infoJson,'$.uid'),'"','') uid
from users


JSON.parse(orderResp.getExpressNumber()).toString() 去掉 "" 号
 
 

标签:customer,goods,like,receive,JSON,查询,json,mysql,EXTRACT
来源: https://www.cnblogs.com/yangsanluo/p/16370993.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有