V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
seagull7558
V2EX  ›  MySQL

MYSQL Json 字段操作疑问

  •  
  •   seagull7558 · 2021-09-02 11:10:54 +08:00 · 1299 次点击
    这是一个创建于 939 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前数据操作需要将很多个平台或是系统的用户信息合并到一张表里

    我的表字段为:

    用户名 年龄 性别 身份信息 业务属性字段(JSON)

    导入其他平台用户的 SQL 语句:

    INSERT INTO sys_user_information (基本属性 A,基本属性 B,基本属性 C,业务属性 JSON)
    SELECT 基本属性 A,基本属性 B,基本属性 C
           JSON_OBJECT(
                   '业务属性 A',
                   业务属性 A
               )
    FROM A 平台.sys_user;
    

    但是这样做的时候会导致 如果 A 平台用户业务属性 A 为 null 插入 JSON{"post": null}到表里

    现在想要使用一个或多个 SQL 删除 值为 null 的 key 请问该如何操作呢,还请各位不吝赐教,蟹蟹~

    注:暂不考虑 JSON_OBJECT 函数中添加判断这种解决方法

    3 条回复    2021-09-02 18:58:42 +08:00
    seagull7558
        1
    seagull7558  
    OP
       2021-09-02 14:16:27 +08:00
    啊这 是问题太冷门了吗? 竟然没回复
    NjcyNzMzNDQ3
        2
    NjcyNzMzNDQ3  
       2021-09-02 16:08:46 +08:00
    1 、尽量规避删除操作,合并数据时用 when case 处理 null 。

    2 、删 null 的 json key 可以用 mysql 函数 json_extract(live_room, '$.url'),或者 like/regexp null 的数据。
    liuidetmks
        3
    liuidetmks  
       2021-09-02 18:58:42 +08:00
    写程序吧,sql 完成复杂操作有点困难
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2684 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:30 · PVG 23:30 · LAX 08:30 · JFK 11:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.