相关文章推荐
慷慨大方的麦片  ·  JavaScript---Dom树详解,节点 ...·  2 月前    · 
坏坏的西瓜  ·  Flutter中Map、List数组的常用方 ...·  2 月前    · 
酷酷的鸵鸟  ·  React中如何动态添加和删除元素_reac ...·  1 月前    · 
知识渊博的柚子  ·  在Swift中展平数组的数组开发者社区·  1 月前    · 
腼腆的饼干  ·  array(C++/CLI 和 ...·  1 月前    · 
慷慨大方的手术刀  ·  python ...·  8 月前    · 
打酱油的香蕉  ·  split()过滤引号中的逗号_ts ...·  8 月前    · 
重感情的红茶  ·  让计算机看懂你的行为——视频行为识别算法介绍 ...·  1 年前    · 
奋斗的毛豆  ·  如何将Azure SQL数据库与Azure ...·  1 年前    · 
任性的烤面包  ·  Lua中巧妙的获取函数的参数个数 - ...·  1 年前    · 
Code  ›  MySQL中JSON数组的一点处理开发者社区
mysql 数组
https://cloud.tencent.com/developer/article/2072472
温文尔雅的绿豆
1 年前
作者头像
一介程序员
0 篇文章

MySQL中JSON数组的一点处理

原创
前往专栏
腾讯云
备案 控制台
开发者社区
学习
实践
活动
专区
工具
TVP
文章/答案/技术大牛
写文章
社区首页 > 专栏 > 写两行代码放松下 > 正文

MySQL中JSON数组的一点处理

原创
修改 于 2022-08-15 00:20:29
839 0
举报

对于下面的表结构,一个用户表,一个角色表,用户表里面的 role_id 通过 JSON 格式保存角色 id 的数组。

create table user(
	id int not null auto_increment primary key,
  name varchar(32) not null,
  role_id json not null
create table role(
	id int not null auto_increment primary key,
  name varchar(32) not null
insert into role(name) values ('部门1'),('部门2'),('部门3');
insert into user(name, role_id) values ('user1', '[1, 2]');
insert into user(name, role_id) values ('user2', '[2, 3]');
image-20220814234157852.png

在开发中,希望返回用户信息的时候,将 role_id 中的 id 换成 {id: 1, name: '部门1'} 这样的形式。

具体思路如下:

select * 
from user join json_table(user.role_id, '$[*]' columns(rid int path '$')) as t;
select * 
from user join json_table(user.role_id, '$[*]' columns(rid int path '$')) as t 
left join role on role.id = t.rid;
 
推荐文章
慷慨大方的麦片  ·  JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删
2 月前
坏坏的西瓜  ·  Flutter中Map、List数组的常用方法_flutter map
2 月前
酷酷的鸵鸟  ·  React中如何动态添加和删除元素_react 动态添加组件
1 月前
知识渊博的柚子  ·  在Swift中展平数组的数组开发者社区
1 月前
腼腆的饼干  ·  array(C++/CLI 和 C++/CX) | Microsoft Learn
1 月前
慷慨大方的手术刀  ·  python 出现IllegalArgumentException: Points of LinearRing do not form a closed linestring - CSDN文库
8 月前
打酱油的香蕉  ·  split()过滤引号中的逗号_ts split-CSDN博客
8 月前
重感情的红茶  ·  让计算机看懂你的行为——视频行为识别算法介绍(二) - 知乎
1 年前
奋斗的毛豆  ·  如何将Azure SQL数据库与Azure Databricks连接起来
1 年前
任性的烤面包  ·  Lua中巧妙的获取函数的参数个数 - 紫——瞳 - 博客园
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号