MySQL对于JSON字段的查询和筛选

一、创建测试表test_table

DROP TABLE IF EXISTS `test_table`;
CREATE TABLE `test_table`  (
  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `META_INFO_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  PRIMARY KEY (`ID_`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

INSERT INTO `test_table` VALUES ('188a04b0-f7df-11ee-b70d-6c0b84a4f916', '研发部请假流程', '{\"createUserId\":\"admin\",\"createUserName\":\"超级管理员\",\"description\":\"研发部请假流程\",\"updateUserId\":\"admin\",\"updateUserName\":\"超级管理员\"}');
INSERT INTO `test_table` VALUES ('28406342-f7df-11ee-b70d-6c0b84a4f916', '多实例', '{\"createUserId\":\"admin\",\"createUserName\":\"超级管理员\",\"description\":\"多实例测试\",\"updateUserId\":\"admin\",\"updateUserName\":\"超级管理员\"}');
INSERT INTO `test_table` VALUES ('748c0dde-f7de-11ee-b70d-6c0b84a4f916', '应急抢修', '{\"createUserId\":\"admin\",\"createUserName\":\"超级管理员\",\"description\":\"应急抢修工单流程\",\"updateUserId\":\"admin\",\"updateUserName\":\"超级管理员\"}');

二、查询测试表数据

select tab.* from test_table tab;

三、操作示例

  1. 查询json字段里的createUserName
    select tab.META_INFO_ -> '$.createUserName' from test_table tab;

  2. 查询条件按json字段里的createUserId='admin'筛选数据
    select tab.* from test_table tab where JSON_EXTRACT(tab.META_INFO_, '$.createUserId')='admin';

  3. 其他操作示例
    3.1、JSON_OBJECT函数用于创建一个JSON对象


    3.2、JSON_ARRAY函数用于创建一个JSON数组

     

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值