V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
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 · Sep 2, 2021 · 1859 views
    This topic created in 1702 days ago, the information mentioned may be changed or developed.

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

    我的表字段为:

    用户名 年龄 性别 身份信息 业务属性字段(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 replies    2021-09-02 18:58:42 +08:00
    seagull7558
        1
    seagull7558  
    OP
       Sep 2, 2021
    啊这 是问题太冷门了吗? 竟然没回复
    NjcyNzMzNDQ3
        2
    NjcyNzMzNDQ3  
       Sep 2, 2021
    1 、尽量规避删除操作,合并数据时用 when case 处理 null 。

    2 、删 null 的 json key 可以用 mysql 函数 json_extract(live_room, '$.url'),或者 like/regexp null 的数据。
    liuidetmks
        3
    liuidetmks  
       Sep 2, 2021
    写程序吧,sql 完成复杂操作有点困难
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1302 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:55 · PVG 00:55 · LAX 09:55 · JFK 12:55
    ♥ Do have faith in what you're doing.