› 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
gz911122
V2EX  ›  MySQL

有没有可能分析 sql 语法来进行 1 对 n 返回结果结构化之类的呢?

  •  
  •   gz911122 · Sep 27, 2019 · 5013 views
    This topic created in 2555 days ago, the information mentioned may be changed or developed.

    现在 mybatis 也好 jpa 也罢这些 orm/mapping 框架都需要手动指定比如 1 对 n 的时候的映射关系来将 sql 返回的矩阵变成结构化的数据

    {
     "a":[
       1,2
      ]
    }
    

    比如这样的结构 sql 查询的结果实际上是 a,1 a,2

    有办法通过比如 ast 语法树分析之类的来代替原来手动指定么?

    6 replies  •  2019-09-27 16:43:05 +08:00
    a1369521908
        1
    a1369521908  
       Sep 27, 2019
    YUyu101
        2
    YUyu101  
       Sep 27, 2019
    用函数转成 json 或者 array 塞到子查询里吧,不然还会碰到你想查用户的发帖列表和回复列表这种,一对几个多的情况,用表格无法表示结果,只能塞到一个字段里去,而且还不用 orm 映射了。否则就分两次查询。
    YUyu101
        3
    YUyu101  
       Sep 27, 2019
    select a.*,(select json_agg(b.*) from b where aid=a.id) as b from a
    查出来就是 a , b:[b1,b2]
    gowk
        4
    gowk  
       Sep 27, 2019 via Android   ❤️ 1
    来了,来了,那个男人就要来了
    reus
        5
    reus  
       Sep 27, 2019
    PostgreSQL 可以直接写在 sql 里,想要什么结构自己写

    jsonb_agg, jsonb_build_object 等等,都可以构造嵌套数据
    gz911122
        6
    gz911122  
    OP
       Sep 27, 2019
    @reus
    @YUyu101

    是的,
    我的意思是解决 orm 需要手动指定 1toN 关联关系这个问题...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2528 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 12:15 · PVG 20:15 · LAX 05:15 · JFK 08:15
    ♥ Do have faith in what you're doing.